blog

docker を使う

よく使われる docker コマンドをいくつか列挙します。詳しくは docker --help や docekr --help を参照してください。...

Apr 23, 2020 · 4 min. read
シェア

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

Read next

バージョン番号を比較する

質問に従って、'.各サブバージョン番号の2つのバージョンを分割し、左から右へ1つずつ比較する場合は、サブバージョン番号の数のバージョンは、他よりも、0サブバージョンとバージョンの少ないサブバージョンでは、常に2つのバージョンのすべてのサブバージョンを比較できるように。 サブバージョンを分割すると、配列に格納されているサブバージョンに分かれて、ダブルポインタを使用することができ、格納されている2つのバージョンの2つの別々のバージョンに分かれています...

Apr 23, 2020 · 2 min read