Dockerで使うコマンドとかを備忘録的にまとめます
##Dockerfileで使う命令
- CMD
- コンテナが起動するときに実行されるコマンドなど
- shell形式(/bin/sh -c に渡される)とexec形式(JSONの配列)で記述できる
- COPY
- ファイルやディレクトリをコピーする
- ENTRYPOINT
- コンテナが起動するときに実行される実行ファイルを設定できる。
- ENV
- 環境変数を設定できる
- EXPOSE
- ポートを指定する(例 EXPOSE 80など)
- 実際に使うときは
docker run -d -p 8000:80 {dockerイメージ名}
など - FROM
- ベースとなるイメージを選択する
- Docker Hubにあるものや自作イメージなど
- MAINTAINER
- イメージの作成者などの情報を設定
- ONBUILD
- 本イメージが他のイメージのベースとして使われるときに、実行される命令などを指定する
- RUN
- buildをした時に実行するコマンドを設定
- 例
RUN apt-get update
など - USER
- ログインユーザを設定する
- 事前にユーザを作成する必要がある
- VOLUME
- ファイルやディレクトリをボリュームとして設定する
- WORKDIR
- 作業ディレクトリを設定する
##docker runのオプション
オプション | 役割 |
---|---|
-d | デタッチ(バックグラウンドで実行する) |
-i | インタラクティブにコンテナとやり取りを行う |
-t | TTYを割り当てる |
--rm | dockerのプロセスが終了したときにコンテナも自動で削除する |
-e | 環境変数を設定する |
-h | コンテナのホスト名を指定する |
--name | {名前}をコンテナに割り当てる |
-P | ホストのポートとコンテナのポートを自動的にマッピングする |
-Pオプションの実行例
$: docker run -d -P test
09e0c70c761b906e4ef2f3a12bcbcd0c93dc75a26545c4780196cccb329ff216
$: ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
09e0c70c761b test "uwsgi --http 0.0.0.0" 2 hours ago Up 6 seconds 0.0.0.0:32773->9090/tcp, 0.0.0.0:32772->9191/tcp infallible_volhard
コンテナで指定した9090番ポートと9191番ポートをホストの32773番ポートと32772番ポートへ自動的にマッピングする。
そのため、1つのホスト上で複数のコンテナを使うときには便利
##その他のコマンド
docker create
コンテナを作成するが、起動はしない
docker cp
ファイルやディレクトリをホストとコンテナでやり取りする
docker kill
コンテナを終了させる
docker pause
コンテナをサスペンドする
docker restart
コンテナを再起動する
docker rm
コンテナを削除する
docker start
コンテナを起動させる
docker stop
コンテナを停止させる。削除はしない
docker port
指定したポートのマッピングリストを表示する
docker ps
起動しているコンテナを表示する(-a オプションで停止したコンテナも表示)
docker images
ローカルに取得しているイメージを表示する
docker rmi
イメージを削除する
docker build
Dockerfileに基いてイメージを作成する
docker pull
イメージをDocker Hubなどからダウンロードする