たのしい工学

プログラミングを学んで、モノをつくりたいひと、効率的に仕事をしたい人のための硬派なブログになりました

【Docker入門 初心者向け 】Docker基本コマンド集

   

(引用:https://www.docker.com/legal/brand-guidelines

Dockerとは?

カーネルの機能を利用して、ホストOS上に隔離されたアプリケーション実行環境をつくる技術のことです。

従来の仮想化技術との違い

コンテナはゲストOSをもたず。ホストOSのカーネルを使用し、特定のプログラムを動作させるために動作する 。ホストOSでコマンドから操作ができるので、非常動作が軽いのです。

コンテナがホストOSのカーネルを使用するので、カーネルを共有できないOSは動作させることができません。たとえばホストOSにLinuxOSがインストールされているマシンでLinuxコンテナは動作させることができますが、Windowsコンテナは動作させることはできません。

Dockerコマンド

docker pull : イメージの取得

docker create : コンテナの作成

docker start : コンテナの起動

これらのコマンドを実行すると、Docker社のホスティングしているDocker Hubというサーバからイメージファイルをダウンロードしてきます。

Docker Hubとは

  • Dockerイメージのレジストリサービス
  • Dockerイメージの公開、検索、ダウンロードをすることができます

site → docker hub

Dockerイメージとは

  • コンテナ実行に必要なファイルをまとめたファイルシステムのこと
  • AUFSなどの特殊なファイルシステムが使用されている
  • イメージ上のデータはレイヤで構成され、読み取り専用

ローカル上にダウンロード済みのイメージ一覧を表示するコマンド


docker images

imagesはイメージの一覧を表示するサブコマンドです。

イメージにタグつけするコマンド


docker tag docker/whalesay test_whalesay

tag : タグつけをするサブコマンド
docker/whalesay : 元となるイメージ名
test_whalesay : 新しいイメージ名

※whalesayはあくまでも一例のイメージです。このdockerイメージを実行すると、くじらのアスキーアートが表示されます。よかったらやってみてくだい。

イメージの詳細情報を表示するコマンド


docker inspect my_whalesay

inspect : イメージの詳細情報を表示するサブコマンド

ローカルのイメージを削除するコマンド


docker rmi docker/whalesay

※タグ名を省略すると、latestタグのイメージが削除されます。ちなみに、latestというタグ名はかならずしもイメージの内容が最新であることを表すものではありません。

すでにそのイメージでコンテナを作成したあとに、強制削除したいときは


docker rmi -f docker/whalesay

イメージを取得(PULL)するコマンド


docker pull ”取得したいイメージ名”

Dockerfileを使用したイメージビルドの方法

Dockerfileからイメージを構築することをイメージのビルドといいます。

たとえば、Dockerfileは以下のようなものです。

Dockerfile



FROM docker/whalesay:latest

RUN apt-get -y update && apt-get install -y fortunes

CMD /usr/games/fortune | cowsay


Docker Hubにイメージをpushする

Dockerでpushするとは、リポジトリにイメージを追加することを意味します。
すでにDocker hubのリポジトリに同名のタグのイメージが存在する場合には、イメージが上書きされてしまうので、注意しましょう。

Dockero Hubにイメージをpushするには、まずDocekr Hubにログインが必要になります。

レジストリサーバーへログイン

レジストリサーバというのは、DockerHubなどのDockerイメージをホスティングしているサービスのサーバを指しています。

つまり、いくつかDockerHubをホスティングしているサービスが存在するということです。

Docker Hub以外だと、Quay.io というサービスがあります。

Docker hubにログインする場合


  docker login 
  

Docker hubにおけるタグ付けルール

 <Docker ID>/<イメージ名>:<タグ名> (※タグ名は省略可)
  <Docker ID>/<イメージ名>=ローカルのリポジトリ名です

Docker HubにPushする際のコマンド


  docker push Docker ID/イメージ名:タグ名
  

これでイメージへのアクセス権限のあるdockerアカウントさえあれば、docker pullすればレジストリからdockerイメージを取得できるようになりました。

(Docker Toolboxを利用しているひと向け)Docker ToolBoxでmkdirできないとき

Virtual boxをシャットダウンして、
コマンドプロンプトを管理者として実行してみましょう。Shift+右クリックで、メニューが現れますので、そこから管理者として実行を選択しましょう。
bash - Docker Quickstart Terminal: cd: /u: Permission denied - Super User

Docker Tool Box利用の注意点

これ以降のレクチャーで、ブラウザのアドレス欄に http://localhost:8080 のように入力してDockerコンテナで公開しているWebサイトを開くことがありますが、Docker Toolboxの場合は localhost の代わりに IPアドレスを指定する必要があるのでご注意ください。

IPアドレスを確認するには、ターミナル(コマンドプロンプトなど)で次のコマンドを実行します。


docker-machine ip default

このコマンドの結果表示されたIPアドレスが、Docker Toolboxで動かしている仮想マシンのIPアドレスになります。

Docker Toolboxをお使いの場合は、このIPアドレスを使用して

http://<確認したIPアドレス>:8080

のようにアクセスしてください。

※ポート番号はレクチャーによっては8080でない場合もあります。

内容は随時更新していきます。

次回以降、実際にコンテナを利用してnginxサーバを立てていきます。

Dockerを詳しく学びたいひとは、Udemyの「ゼロからはじめる Dockerによるアプリケーション実行環境構築」がおすすめです!よかったら受講してみてください。

ではでは!

 - Docker