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 buildDockerfileに基いてイメージを作成する
docker pullイメージをDocker Hubなどからダウンロードする