イメージ取得
docker image pull {イメージ名}
イメージ削除
docker image rm {イメージ名}
イメージ一覧
docker image ls
イメージの詳細情報を表示
docker image inspect {イメージID}
イメージからコンテナ実行
docker container run --name {コンテナ名} {イメージID}
イメージからボリュームに接続してコンテナ実行
docker container run -v {ボリューム名}:{コンテナ内の絶対パス} {イメージ名}
イメージからホストのフォルダに接続してコンテナ実行(バインドマウント)
docker container run -v {ホストの絶対パス}:{コンテナ内の絶対パス} {イメージ名}
イメージからポートを紐づけてコンテナ実行
docker container run -p {ホスト側のポート}:{コンテナ側のポート} {イメージ名}
イメージからコンテナ実行して、コマンドを実行後にコンテナを削除
docker container run --rm -it {イメージID} {コマンド(lsなど)}
イメージからデタッチモードでコンテナを実行
docker container run -it -d {イメージID} {コマンドなど}
イメージからネットワークを指定してコンテナを実行(指定しない場合は「bridge」に接続)
docker container run -it -d --network {ネットワーク名} {イメージID}
コンテナ削除
docker container rm {コンテナID}
コンテナが実行中でも強制削除
docker container rm -f {コンテナID}
停止済みのコンテナを一括で削除
docker container prune
コンテナ一覧表示
docker container ls -a
コンテナ実行
docker container start {コンテナID}
コンテナ停止
docker container stop {コンテナID}
実行中のコンテナに入る
docker container exec -it {コンテナID} bash
ボリュームを作成する
docker vlume create {ボリューム名}
ボリュームを表示する
docker vlume ls {ボリューム名}
ボリュームを詳細情報表示する
docker vlume inspect {ボリューム名}
ボリュームを削除する
docker vlume rm {ボリューム名}
ネットワークを一覧表示する
docker network ls
ネットワークの詳細を表示する
docker network inspect {ネットワーク名}
ネットワークを作成する
docker network create {ネットワーク名}
ネットワークを削除する
docker network rm {ネットワーク名}
Dcokerfileからbuildする
docker image build {Dockerfileパス}
Dcokerfileからbuildする時に名前を付けて実行
docker image build -t {リポジトリ名(任意の名前)}:{タグ名}(任意の名前) {Dockerfileパス}
DcokerfileからビルドコンテキストとDockerfileを別々に指定する
Docker image build -f ./hoge/Dockerfile .
Dockerfile
※RUNはimage作成時に実行される
※CMDはコンテナ実行時に実行される
※ENVは環境変数として設定される
FROM {イメージ名} 例:ubuntu:20.04
RUN apt update && ¥
apt install vim
CMD ["ls","-a"]
COPY ./hoge.txt /opt/
ENV hoge="hogehoge"
コマンド実行時に変数へ引数を渡す
ARGはビルド時にのみ実行される
docker image build --build-arg hoge="hogehoge" .
このDockerfileを上記のコマンドで実行するとコンテナ実行時に「hogehoge」が表示される
FROM ubuntu:20:04
ARG hoge
RUN echo $hoge > hoge.txt
CMD ["cat", "hoge.txt]
ワーキングディレクトリを変更する
opt配下にhoge.txtが作成される
FROM ubuntu:20:04
WORKDIR /opt
RUN touch hoge.txt
マルチステージビルド
「--from=0」で最初に出現したFROMを指定
FROM gcc:xx.x.x
WORKDIR /opt
COPY ./hoge.c .
RUN gcc hoge.c
FROM ubuntu:20.04
WORKDIR /opt
COPY --from=0 /opt/a.out .
CMD ["./a.out"]
または名前を付けて指定することもできます。
FROM gcc:xx.x.x AS compiler
WORKDIR /opt
COPY ./hoge.c .
RUN gcc hoge.c
FROM ubuntu:20.04
WORKDIR /opt
COPY --from=compiler /opt/a.out .
CMD ["./a.out"]
本番と開発でENVを分ける書き方
docker image build --target dev .
docker image build --target prod .
FROM ubuntu:20.04 AS base
RUN apt update
CMD ["sh","-c","echo $environment"
FROM base AS dev
ENV environment=dev
FROM base AS prod
ENV environment=prod
---