Dockerミラーとコンテナ

3921 ワード

前言:
ミラーとコンテナの関係は1対多です.つまり、同じミラーで異なるバージョンのコンテナを作成できます.
そのため、ミラーを作成してから、ミラーを実行し、バージョン、ポート、コンテナ名、
1、ミラーの作成
ミラーを作成する前にDockerfileファイルを作成する必要があります.このファイルはdockerの実行など、Dockerの最も主要な構成ファイルです.
例:
[root@centost1 centos7]# vi Dockerfile
次の簡単なスクリプトテストを入力します.
FROM centos:centos7.1.1503
CMD ["/bin/echo","this is test cmd docker"]
ミラー作成コマンドを実行します.
Dockerfileは、現在のディレクトリで「.」を使用します.表示:
[root@centost1 centos7]# docker build -t test/centos:7.1 .
またはDockerfileが存在するディレクトリを指定します.
[root@centost1 centos7]# docker build -t test/wordpress:4.2/usr/software/docker/git/docker-training/wordpress
Step 9 : ADD supervisord.conf/etc/supervisord.conf
 ---> 805f510ea2c8
Removing intermediate container 01b28338b0ca
Step 10 : RUN mkdir -p/etc/supervisor.conf.d &&     mkdir -p/var/log/supervisor
 ---> Running in ea323222231c
 ---> 0ccb19ab1472
Removing intermediate container ea323222231c
Step 11 : EXPOSE 22
 ---> Running in 46b3fae7614a
 ---> bfa2da373c93
Removing intermediate container 46b3fae7614a
Step 12 : ENTRYPOINT/usr/bin/supervisord -n -c/etc/supervisord.conf
 ---> Running in fd69533f2fae
 ---> b71b18e0e65b
Removing intermediate container fd69533f2fae
Successfully built b71b18e0e65b
説明:バージョンを指定しない場合、デフォルトバージョンはlatestです.
2、生成容器
適切なコンテナを生成するには、ミラーを作成した後にミラーを起動する必要があります.
現在所有しているミラーを表示するにはdockerを使用します.
[root@centost1 centos7]#  docker images
ミラーを起動するには、通常2つの方法で起動します.
1)docker run-d(バックグラウンドでコンテナを起動し、コンテナ番号を返す)
2)docker run-it(インタラクティブモード起動、コンテナをフロントに起動)
次のようになります.
[root@centost1 centos7]# docker run -d -p 2222:22 --name base test/centos:7.1
6b11b19c4828594a2710c6ecbd721c50c3a4d296187c3c3c62d396081d256e64
説明:
--name:コンテナの名前(カスタマイズ可能)
-d-p 2222:22(シンクホストの2222ポートを使用してdockerコンテナの22ポートにマッピング)
起動エラーが発生した場合、
Conflict. The name "/base"is already in use by container 
古い容器を削除して再起動します.
3、コンテナの表示:
docker ps(実行中のコンテナを表示)
docker ps-a(すべてのコンテナを表示[未実行を含む])
[root@centost1 centos7]# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                  NAMES
6b11b19c4828        test/centos:7.1   "/usr/bin/supervisord"  2 minutes ago       Up 2 minutes        0.0.0.0:2222->22/tcp   base 
4、容器に入る
コンテナが起動すると、コンテナの内部に入ってコマンド操作を行うことができます.
例:
[root@centost1 php-fpm]# docker exec -it base/bin/bash
[root@8ded2f9c63cc/]#
5、容器の管理
runをミラーしてコンテナを起動すると、コンテナを管理できます.
構文:
docker startコンテナ名:停止したコンテナを1つまたは複数起動
docker stopコンテナ名:実行中のコンテナを停止
docker restartコンテナ名:コンテナの再起動
docker rmコンテナ名docker rmコンテナ名:コンテナを削除する
またはdocker rm-fコンテナ名:強制削除コンテナ
例:
[root@centost1 ~]# docker start base
base
6、容器の削除
削除するミラーを先に確認します.
[root@centost1 ~]#  docker ps -a
次に、コンテナIDミラーから削除できます.
[root@centost1 ~]#  docker rm a1157d56ac1b
注意:このコンテナがすでに稼働している場合は、コンテナの再削除を停止するか、docker rm-fを使用して強制的に削除する必要があります.
7、ミラー削除
ミラーの削除はコンテナの削除と似ています
[root@centost1 ~]#  docker rmi test/centos:7.0
または
[root@centost1 ~]#  docker rmi -f test/centos:7.0
8、docker runのいくつかのパラメータの説明:
1)docker run-v:ミラーデータバックアップディレクトリを設定する:
例:
[root@centost1 mysql]# docker run -d -p 3306:3306 -v/usr/software/docker/git/mydata:/var/lib/mysql --name dbserver test/mysql:5.5
説明:
-v/usr/software/docker/git/mydata:/var/lib/mysql
mysqlデータディレクトリを/usr/software/docker/git/mydataに同時に保存
コンテナを削除すると、バックアップディレクトリの下にあるデータを新しいマウントできます.
例:
[root@centost1 mysql]# docker run -d -p 3306:3306 --name newdb -v /usr/software/docker/git/mydata:/var/lib/mysql
2)docker run -rm 
[root@centost1 mysql]# docker run -it --rm test/cmd:1.0 
説明:(実行が完了したら容器を削除することを示す)