rakuishi.com

Docker でよく使用するコマンド一覧

数カ月後にはしっかり忘れていると思うのでメモしておきます。

前準備

VirtualBoxDocker Toolbox をインストールしておきます。

また、作業するフォルダ上に Dockerfile を用意します。今回はサンプルに LAMP 環境を構築できる tutumcloud/lamp: LAMP base docker image を使用しました。tutumcloud/lamp では、app フォルダはルートに設定されています。

FROM tutum/lamp:latest
RUN rm -fr /app && mkdir /app
EXPOSE 80 3306
CMD ["/run.sh"]

ファイル共有をテストするために、適当なファイルを用意しておきます。

$ mkdir app
$ echo 'Hello, World!' > app/index.html

Dokcer コマンド一覧

Dokcer マシンを立ち上げる

Docker Toolbox インストール時に作成される Docker Quickstart Terminal.app を起動し、default という名前で用意された Linux 環境を立ち上げます。実際には内部に含まれている start.sh シェルスクリプトが実行されており、以下のコマンドによって Docker マシンを立ち上げています。

$ docker-machine create -d virtualbox --virtualbox-memory 2048 --virtualbox-disk-size 204800 default

Docker マシン一覧を確認する

$ docker-machine ls
NAME     ACTIVE  DRIVER      STATE    URL                        SWARM  DOCKER  ERRORS
default  *       virtualbox  Running  tcp://192.168.99.100:2376         v1.9.1

Docker マシンの IP Address を確認する

$ docker-machine ip default
192.168.99.100

Dockerfile をビルドし、Docker イメージを作成する

$ docker build -t [IMAGE NAME] .

Docker コンテナを起動する

-v オプションを使用することでファイル共有が可能になります。

$ docker run -d -p 80:80 -v $(pwd)/app:/app --name=[CONTAINER NAME] [IMAGE NAME]

起動できれば、Docker マシンの IP Address をブラウザに入力し、実際に index.html の内容が表示されていることを確認できます。また、index.html を変更すれば、ブラウザ上に表示されている内容も変更されます。

$ open "http://$(docker-machine ip default)"

Docker コンテナ内に入る

$ docker exec -it [CONTAINER NAME] bash

Dokcer イメージ一覧を確認する

$ docker images
REPOSITORY  TAG     IMAGE ID      CREATED       VIRTUAL SIZE
tutum/lamp  latest  f02090877f42  5 months ago  426.5 MB

Docker イメージを削除する

$ docker rmi -f [IMAGE NAME]

Docker コンテナ一覧を確認する

$ docker ps -a

Docker コンテナを削除する

[CONTAINER NAME] は、[CONTAINER ID] でも良くて、その場合、先頭数文字などを入力するだけで削除できます。

$ docker rm -f [CONTAINER NAME]