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 を参照してください。




