docker
よく使われるコマンド
#全てのイメージを見る
docker images
#すべてのコンテナを表示する
docker ps -a
#実行中のコンテナをすべて表示する
docker ps
#コンテナのログを見る
docker logs コンテナID
ランニングコンテナ。
docker run -e "env1=value1" -e "env2=value2" -d
パラメータの意味
- -e: 実行時環境変数の設定
- -コンテナをバックグラウンドで実行し、コンテナ ID を返します。
- --name: コンテナの名前を指定します。
- -i: コンテナが対話モードで実行されることを示します。
- -t: コンテナに擬似エントリーターミナルを再割り当て。
- -p: ポートマッピング
- -v: ホストとコンテナのファイルマウント
#コンテナを停止する
docker stop コンテナID/コンテナ名
#すべてのコンテナを一度に停止する
docker stop $(docker ps -a -q)
#コンテナを実行する
docker start コンテナID/コンテナ名
#コンテナを削除する
docker rm コンテナID/コンテナ名
#ローカルイメージを削除する
docker rmi ImageID (-f 強制削除)
#コンテナを再起動する
docker restart コンテナID
#コンテナの詳細を見る
docker inspect コンテナID
#コンテナに入る
docker exec -it コンテナID /bin/bash
コンテナとホストファイルのコピーとマウント
#ホストからコンテナへのコピー
docker cp home/123.txt コンテナ名/コンテナID: コンテナパス
#コンテナからホストへのコピー
docker cp コンテナID/コンテナ名: コンテナパス ホストパス
#ホストフォルダをコンテナにマウントする
docekr run -itd -v /home/mrj/ホストパス ImageID
カスタムイメージの作成
1.Dockerコミットを元にImageを作成します。
2.dockerFileを元にImageを作成します。
ビルド・イメージの主なポイント
1.コンテナへの変更はコンテナ・レベルで行われます。
2.コンテナ層は読み書き可能、イメージ層は読み取り専用
DockerFileの基本コマンド。
FROM
- イメージ
MAINTAINER
- 作者のクレジット
コピー
COPY
- ファイルをイメージにコピー
注意力欠如障害
ADD
- ファイルをイメージにコピー
ワークディレクトリ
- 作業ディレクトリを指定するか、パスが存在しない場合はディレクトリを作成します。
エンベロープ
ENV
- 環境変数の設定
- 環境変数の設定
ラン
- イメージの構築時に実行され、イメージレベルで動作します。
エントリーポイント
- コンテナ起動時に実行され、コンテナレベルで動作し、dockerFile ファイルに複数のエントリがある場合は、最後のエントリのみが実行されます。
シーエムディー
- 上記と同様に、コンテナ起動時に実行されるデフォルトのコマンドやパラメータを変更することができます。
ボリューム
- dockerfileでボリュームを設定しても、ホストへのパスは変更できないことに注意してください。
コマンドフォーマット:
- シェル形式: RUN yum install -y net-tools
- shellフォーマット: RUN yum install -y net-tools
コンテナ構築コマンド
docker build -t mycentos:8 . // .現在のパスのdocekrFileを表す。,mycentos:8はコンテナ名とバージョンである。
javaImageインスタンスの構築:
FROM centos:7
ADD jdk-8u211-linux-x64.tar.gz /usr/local
RUN mv /usr/local/jdk1.8.0_211 /usr/local/jdk
ENV JAVA_HOME=/usr/local/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
ADD apache-tomcat-8.5.35.tar.gz /usr/local
RUN mv /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat
EXPOSE 8080
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]
コンテナを作ります:
docker run -itd -p 80:8080 -v /root/test/ROOT:/usr/local/tomcat/webapps/ROOT mycentos:8 /bin/bash
--volume-from: コンテナとコンテナ間のデータ共有を可能にします。
例えば
nginx1 の作成
docker run -itd -p 8080:80 -v /usr/local/nginx/html:/usr/local/nginx/html --name nginx1 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon o ;"
nginx2の作成
docker run -itd -p 8081:80 --volumes-from nginx1 --name nginx2 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon o ;"
nginx3の作成
docker run -itd -p 8082:80 --volumes-from nginx1 --name nginx3 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon o ;"
以下に一般的な docker コマンドを挙げますが、詳しくは docker --help や docekr コマンド --help を参照してください。