はじめに
Docker公式サイトを参考に、手元のMacにDockerをインストールして、コンテナを立ててみたいと思います。
Dockerのインストール
Docker for MacのインストールページからDocker Hubに飛んで、Docker.dmgをダウンロードしましょう。
Docker Hubを初めて利用する場合はアカウント作成が必要になります。
Docker.dmgを実行するとDockerのインストールが行われます。
インストール完了後にDockerをApplicationsにコピーしましょう。
DockerアプリをダブルクリックしてDockerを起動すると右上ステータスバーにDockerのアイコンが表示されるようになります。起動の際にパスワードを求められるので、適宜入力しましょう。
これでDockerのインストールが完了しました。
確認のため、ターミナルからDockerのバージョンを表示するコマンドを入力しましょう。インストールしたバージョンが表示されていれば成功です。
$ docker --version
Docker version 18.09.2, build 6247962
よく使うDockerコマンドまとめ
上から順に試していくことでDockerイメージ・コンテナのライフサイクルを体験できるようにしています。
オプション等の詳細は公式ドキュメント参照。
Dockerイメージの取得(pull)
$ docker pull [OPTIONS] NAME[:TAG|@DIGEST]
例えばCentOS7のDockerイメージを取得したい場合はこのように入力します。
$ docker pull centos:7
7: Pulling from library/centos
8ba884070f61: Pull complete
Digest: sha256:a799dd8a2ded4a83484bbae769d97655392b3f86533ceb7dd96bbac929809f3c
Status: Downloaded newer image for centos:7
取得したDockerイメージの一覧表示(images)
$ docker images [OPTIONS] [REPOSITORY[:TAG]]
特にオプション等を指定せずに入力するとこんな感じで表示されます。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 9f38484d220f 4 months ago 202MB
コンテナ生成・起動(run)
$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
先ほど取得したCentOS7のコンテナを起動する場合はこのように入力します。
$ docker run -it --name "CentOS" centos:7
[root@16cf99ab3bf6 usr]#
-it
コマンドで、コンテナ内に入っての操作を可能にしています。
--name
コマンドで、Dockerコンテナの名前を定義しています。
コンテナ内に入って操作(attach)
-it
コマンドを指定して起動したので、コンテナ起動後にCentOS内に入っています。
例えばls
コマンドを打つと、ルートディレクトリ下のファイルが表示されます。
[root@16cf99ab3bf6 /]# ls
anaconda-post.log dev home lib64 mnt proc run srv tmp var
bin etc lib media opt root sbin sys usr
コンテナ内から抜ける(デタッチする)場合は、[CONTROL]+pq
を入力しましょう。
再度コンテナ内に入って操作をする場合はattach
コマンドを使います。
$ docker attach [OPTIONS] CONTAINER
CentOSコンテナ内に入る場合には以下のように入力します。
$ docker attach CentOS
[root@16cf99ab3bf6 usr]#
再度[CONTROL]+pq
を入力してデタッチしましょう。
コンテナ一覧の確認(ps)
$ docker ps [OPTIONS]
オプションで何もつけないと起動中のコンテナしか表示されないため、大体は-a
オプションを付けて、停止中のコンテナも併せて表示させます。コンテナが起動していることはSTATUS
列がUp
になっていることで確認できます。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
16cf99ab3bf6 centos:7 "/bin/bash" 11 minutes ago Up 11 minutes CentOS
コンテナの停止(stop)
$ docker stop [OPTIONS] CONTAINER [CONTAINER...]
CentOSコンテナを停止させる場合はこのように入力しましょう。
$ docker stop CentOS
CentOS
コンテナがちゃんと停止したかps
コマンドで確かめてみましょう。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
16cf99ab3bf6 centos:7 "/bin/bash" 29 minutes ago Exited (137) About a minute ago CentOS
STATUS
列がExited
になっていることが確認できると思います。
コンテナの再起動(start)
$ docker start [OPTIONS] CONTAINER [CONTAINER...]
先程停止させたCentOSコンテナをもう一度起動させましょう。
$ docker start CentOS
CentOS
ps
コマンドで、ちゃんと起動しているか確認しましょう。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
16cf99ab3bf6 centos:7 "/bin/bash" 34 minutes ago Up About a minute CentOS
起動していることが確認できたら、再度stop
コマンドで停止させましょう。
$ docker stop CentOS
CentOS
コンテナの削除(rm)
$ docker rm [OPTIONS] CONTAINER [CONTAINER...]
CentOSコンテナを削除しましょう。
$ docker rm CentOS
CentOS
ps
コマンドで確認しても何も表示されなくなるはずです。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Dockerイメージの削除(rmi)
$ docker rmi [OPTIONS] IMAGE [IMAGE...]
CentOSコンテナ作成元のDockerイメージを削除しましょう。
$ docker rmi centos:7
Untagged: centos:7
Untagged: centos@sha256:a799dd8a2ded4a83484bbae769d97655392b3f86533ceb7dd96bbac929809f3c
Deleted: sha256:9f38484d220fa527b1fb19747638497179500a1bed8bf0498eb788229229e6e1
Deleted: sha256:d69483a6face4499acb974449d1303591fcbb5cdce5420f36f8a6607bda11854
images
コマンドで、Dockerイメージが削除されていることが確認できると思います。
REPOSITORY TAG IMAGE ID CREATED SIZE