Dockerエントリーケース

6859 ワード

Dockerの使用
dockerはオープンソースのアプリケーションコンテナエンジンで、go言語に基づいて実装され、開発者にアプリケーションをパッケージ化し、軽量レベルの移植可能なコンテナに依存させ、Linuxマシンに完全に公開したり、仮想化したりすることができます.
コアコンセプト
Dockerホスト:DockerプログラムをインストールしたマシンDockerクライアント:コマンドラインまたは他のツールでDocker を使用
Dockerウェアハウス:パッケージされたソフトウェアミラーを保存するために使用
中央倉庫公有のHUB
Dockerミラー:コンテナを作成するためのDockerコンテナ:ミラーのインスタンス一、常用命令
#     docker
service docker start
#
service docker restart
#
service docker stop
#       
# http://hub.docker.com
# docker mysql
docker search mysql
# docker mysql lastest
docker pull mysql:8.0.17
#
docker images
# docker
docker rm [container-id or container-name]
# docker
docker rmi [container-id or image-name]
# docker -a all( )
docker ps -a
#
# t i p --name d P
docker run -i -t -d -p 3306:3306 mysql
#
docker attach [container-id or container-name]
#
docker start [container-id or container-name]
#
docker stop [container-id or container-name]
#
# -f: docker logs tail -f -e
docker logs -f [container-id or container-name]
#
docker port [container-id or container-name]
#
docker top [container-id or container-name]
# json
docker inspect [container-id or container-name]
#
docker cp [path] [container-id or container-name]:[path]
docker cp [container-id or container-name]:[path] [path]
# /
exit/ctrl+p+q

# mysql
docker exec -it [container-id] /bin/bash

二、容器データボリューム
共有ディレクトリはマウントと同様に、コンテナとホスト間のデータ共有、データボリューム内のデータ共有(読み取り可能/書き込み可能/指定)
docker -it -v [/       ]:[/      ]:[ro(        ,      ) ] [image-name]
docker -it -v /mydata-host:/mydata-container:ro tomcat

DockerFile
ockerfileは、イメージを組み合わせるコマンドを含む文書ドキュメントです.コマンドラインで任意のコマンドを呼び出すには、を使用します.Dockerは、Dockerfileのコマンドを読み取ることによって、自動的にイメージを生成する.docker buildコマンドは、Dockerfileからイメージを構築するために使用されます.docker buildコマンドでは、-fフラグを使用して、ファイルシステム内の任意の場所を指すDockerfileを指定できます.
test.java ====>test.class
Docker images ========> DockerFile
 
docker bulid -f [dockerfile] -t [name]:[version]

データボリュームコンテナ
名命のコンテナはデータボリュームをマウントし、他のコンテナはこの(親コンテナ)をマウントすることによってデータの共有を実現し、この親コンテナはデータボリュームコンテナと呼ばれる.
親コンテナのデータは、データボリュームを介して子コンテナに渡される.
docker run -it --name dc02 --volumes-from dc01 my-centos-image

三、Dockerfile
Dockerfileの実行
予約ワード命令、大文字、後に少なくとも1つのパラメータが必要です.
上から順にを実行する.
#表示注記各命令は、ミラーを作成する
Dockerはベースミラーからコンテナを実行する
命令を実行し、コンテナを変更するdocker commitのような操作を実行して新しいミラーをコミットする
dockerは、コミットされたばかりのミラーに基づいてコンテナを実行する.
Dockerfileの次の命令を実行すると、すべての命令がを実行したことがわかります.
リザーブワード命令
FROMベースミラー現在のミラーは、このミラーに基づいてを構築する.
MAINTAINERミラー保守者名メールボックスRUNコンテナ構築時に実行する必要があるコマンドEXPOSEポートWORKDIR登録容器のデフォルトディレクトリENV環境変数ADD構築時に追加するネイティブファイルはurlと解凍を処理することができる.
COPYとADDはurl を解凍処理できない.
VOLUMEデータボリュームCMDコンテナの実行コマンドは、後の1つだけが機能し、最後に入力されたものは前の(パラメータに含まれる)に置き換えられます.
ENTRYOPOINTとCMDは、置き換えはしないが追加命令ONBUILD親ミラーは、布団ミラーの構築時にがトリガーされます.
 
例:centos 6.8------------->Dockerfile
FROM scratch
MAINTAINER The CentOS Project
ADD c68-docker.tar.xz /
LABEL name="CentOS Base Image" \
   vendor="CentOS" \
   license="GPLv2" \
   build-date="2016-06-02"

# Default command
CMD ["/bin/bash"]