1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker基本コマンド

Last updated at Posted at 2023-08-27

イメージ取得
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
---
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?