目次 †
各種操作 †イメージの取得 †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 起動すると同時にコンテナに入る(exitするとコンテナは終了する) †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ネットワークを作成する †docker network create ネットワーク名 dockerネットワークを指定してコンテナを起動 †docker run --network ネットワーク名 ... dockerネットワークの情報を確認する †docker network inspect ネットワーク名 掃除 †コンテナをきれいにする # 停止中のコンテナを全て削除(要注意) docker container prune イメージををきれいにする # どのコンテナにも参照されていないイメージを削除 docker system prune イメージをビルドする †ここではサンプルとして1秒毎にカウント表示するシェルを起動するコンテナイメージを作成する Dockerfile の作成 †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 |