docker pull イメージ名[:タグ|@イメージのハッシュ値]
例)
docker pull centos:centos7 docker pull amazonlinux:2
docker rm コンテナID
docker build ./ -t イメージ名[:タグ]
docker images
docker rmi イメージID
docker run -it イメージ名[:タグ]
docker run --name コンテナ名 ... # 例 docker run --name mysql -d mysql:latest
docker run -e 環境変数名=値 # 例 docker run -e MYSQL_ROOT_PASSWORD=root-password -d mysql:latest
docker run -d イメージ名[:タグ]
docker run -p 仮想サーバーのポート:コンテナのポート -d イメージ名[:タグ]
docker exec -it コンテナID /bin/bash
docker run -it --rm イメージID /bin/bash
例)
docker run -it --rm amazonlinux:2 /bin/bash docker run -it --rm centos:centos7 /bin/bash
docker run -v ホスト側のPATH:コンテナのPATH イメージ名ID
docker ps
docker ps -a
docker inspect コンテナID
docker container stop コンテナID
わざわざコンテナに入らなくてもコマンド実行は可能。
docker exec コンテナID コマンド
docker exec -it や docker run -it でコンテナに入って作業した状態をイメージとして残しておきたい場合は、docker commit が使用できる。
※既に停止したコンテナからイメージを作成する事も可能。
docker commit コンテナID イメージ名:タグ
# コンテナからホスト側にコピー docker cp コンテナID:/path_to/sample.txt sample.txt # ホスト側からコンテナにコピー docker cp sample.txt コンテナID:/path_to/sample.txt
docker export コンテナID > ファイル名
※docker のメタ情報まで保存したい場合は docker save を使用する。
docker import ファイル - イメージ名:タグ
※docker save で保存したファイルの場合は docker load を使用する。
docker network create ネットワーク名
docker run --network ネットワーク名 ...
docker network inspect ネットワーク名
コンテナをきれいにする
docker container prune
イメージををきれいにする
# どのコンテナにも参照されていないイメージを削除 docker system prune
ここではサンプルとして1秒毎にカウント表示するシェルを起動するコンテナイメージを作成する
FROM amazonlinux:2 #FROM centos:centos7 USER root RUN yum install -y which # amazonlinux2の時 # psコマンドインストール RUN yum -y install procps RUN yum install -y python3 # centos7の時 # ※IUS Community Project のリポジトリを追加する(Python3系はCentOS 7の標準yumリポジトリで提供されていない) #RUN yum install -y https://centos7.iuscommunity.org/ius-release.rpm #RUN yum install -y python36 RUN mkdir /myapp COPY myapp.sh /myapp/ RUN chmod 755 /myapp/*.sh CMD ["/myapp/myapp.sh"]
myapp.sh
#!/bin/bash i=0 while [ true ]; do i=`expr ${i} + 1` echo "i = ${i}" sleep 1 done
docker build ./ -t myapp:latest
docker images
ビルド中によく分からない原因でエラーになりイメージが作成できない事がある。
この場合は、エラーになったコンテナをいったんイメージ化する事によりコンテナにログインする事ができる。
対象のコンテナIDを確認 (エラーになったコンテナも残っている)
docker ps -a
対象のコンテナをイメージ化する
docker commit 対象のコンテナID イメージ名:タグ
これで、エラー時点のコンテナにログインできる。
docker run -it イメージ名:タグ /bin/bash