03:ドッキングウィンドウ - 容器の一般的なオペレーティング

一般的なオペレーティング・ドッカ容器

1:ドッキングウィンドウコンテナ管理の詳細なコマンド:

最新:RUNは80:80 nginxのドッカー-p -d
RUN(コンテナを作成して実行する)
-dバックグラウンドで
ポートマッピング-p
-vソースアドレス(ホスト):宛先アドレス(コンテナ)
のnginx:最新ドッカー画像名最後のバージョン

:CentOSのを実行し、コンテナターミナルへの
公式見つけるために、ドッカー検索のCentOSのCentOSミラー
ドッカーはCentOSのプル
ドッカーRUN -it --name CentOSのCentOSの/ binに/ bashのの
割り当てインタラクティブ-it、端末
名が指定されたコンテナ--name
/ binが/簡単コマンドはbashを入力した後、容器カバーの初期コマンド

:コンテナターミナルのミラーに実行した後
、[@ルート/ 4b3716037b2b]#ホスト名-Iは、
172.17.0.2
の##番出口、すなわち破壊コンテナを終了するには、[ルート/ 4b3716037b2b @]が
一時的退出破壊法のないコンテナ:CTRL + pをして放し、その後、押したままCTRL + Q


コンテナのリストを見る
ドッカPS #dockerコンテナPS(コンテナランニング)
ドッカー#dockerコンテナPS PS -a -a(すでに終了しましたを含むすべての実行オフコンテナ、)
ドッカーPS --no-TRUNCすべてのロングフォーマット

[ルート@ k8s129〜]#]ドッキングウィンドウの CentOSのは、10(寝-d実行容器10を起動するバックグラウンドモードを使用して、コマンドSLEEPを指示)が
651d87d5be24cca4f7a37a25f8d87266b9e8a8b4bcf724106d55bb2c4b030da9
-a PS#ドッカーコンテナ[ルート@〜k8s129]
コンテナID PORTS STATUSイメージが作成したコマンドNAMES
651d87d5be24 CentOSの"SLEEP 10"。8秒前メンバーまで。7秒compassionate_lumiere
CentOSの"/ binに/ bashの" 14分前メンバー終了しました4b3716037b2b(0)分前メンバー12は、CentOSのある
13 742f43349c54 nginxの"の... nginxの-g「デーモン"終了しました時間前メンバー(0)12がされています前メンバーcompetent_allen時間
[ルート@ k8s129〜] -a#ドッカーPSコンテナ(10S終了後に終了します。このコンテナ)
コンテナIDポートをIMAGEは、コマンド名を作成したSTATUSを
651d87d5be24 CentOSの「SLEEP 10」2分前メンバーEXITED(0)2分前compassionate_lumiere
CentOSの4b3716037b2b "/ binに/ bashの"。17分前メンバー終了しました(0)15分前メンバーCentOSの
13 742f43349c54 nginxの"の... nginxの-g」デーモン"は終了しました時間前メンバー(0)時間前メンバー12はcompetent_allenされている
[k8s129ルート@〜] RUN#ドッカー-d CentOSの(指定されていないが、そのようなCentOSのミラーとして指定されたコマンドを、ミラーリング製造プロセスのデフォルトの実装は/bin.bashで、nginxのミラーのnginxの-g `デーモンである.....`)

通常の停止コンテナ:
ドッカーSTOP CONTAINER IDまたは名前

[root@k8s129 ~]# docker ps (查看CONTAINER_ID或者NAMES)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1cbafd84c8b2 nginx "nginx -g 'daemon of…" 3 minutes ago Up 3 minutes 80/tcp relaxed_chaum
[root@k8s129 ~]# docker stop 1cbafd84c8b2 或者docker stop relaxed_chaum
relaxed_chaum
[root@k8s129 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@k8s129 ~]#

强制杀死容器:
docker kill CONTAINER_ID或者NAMES

删除容器 # 只能删除已经退出的容器,正在运行的容易需要先停止,才能删除 或者加-f 选项强制删除,不建议
docker rm CONTAINER_ID或者NAMES
docker rmi 是删除镜像,注意两者的区别
批量删除容器
docker rm -f `docker ps -a -q`#获取容器的ID号

注意:docker容器内的第一个进程必须一直处于前台运行的状态(必须夯住),否则这个容器,就会处于退出状态!

 

进入容器:
(目的,调试,排错)

方法1:docker exec (会分配一个新的终端tty)
docker exec -it 容器id或容器名字 /bin/bash

[root@k8s129 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e067cb3fe22a centos "/bin/bash" 4 minutes ago Up 4 minutes heuristic_archimedes
[root@k8s129 ~]# docker exec -it e067cb3fe22a /bin/bash (分配一个新的终端进入容器)
[root@e067cb3fe22a /]# exit # ctrl + p 然后松开 在安装ctrl +q
这两种方式退出,都不会停止容器,因为原终端还在运行。只是把新分配的终端退出了。

方法2:docker attach(使用的是同一个终端,弃用了解就好,使用方法1 exec进入。)
docker attach [OPTIONS] CONTAINER
只能使用ctrl + p 然后松开 在安装ctrl +q退出容器,如果使用exit会直接销毁容器。


2: docker容器的网络访问
指定映射(docker 会自动添加一条iptables规则来实现端口映射)
-p hostPort:containerPort
-p ip:hostPort:containerPort
-p ip::containerPort(随机端口)
-p hostPort:containerPort:udp
-p 81:80 –p 443:443 可以指定多个-p
大 P 宿主机随机端口映射到容器端口:
docker run -d -P nginx:latest

 

 

 

3:docker的数据卷管理

数据卷(文件或目录)
-v src(创建的卷目录):dst(容器的目录)
-v src(宿主机的目录): dst(容器的目录)
第一种:把容器里面的文件,拷贝到卷中
第二种:把宿主机的目录,挂载到容器的目录中

第一种用法:
[root@k8s129 ~]# docker volume create xujin #创建一个卷
xujin
[root@k8s129 ~]# docker volume ls # 查看
DRIVER VOLUME NAME
local xujin
[root@k8s129 ~]# docker volume inspect xujin # 查看卷存放的位置
[
{
"CreatedAt": "2019-10-20T18:28:22+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/xujin/_data",
"Name": "xujin",
"Options": {},
"Scope": "local"
}
]
#把刚才创建的xujin卷,挂到nginx 容器的数据目录下面(/usr/share/nginx/html)。
[root@k8s129 ~]# docker run -d -p 80:80 -v xujin:/usr/share/nginx/html nginx
9e9fb65dc865b2decfc57d85c622832554bcb1aa4fbabe7018c013c2c7c7becb
[root@k8s129 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e9fb65dc865 nginx "nginx -g 'daemon of…" 7 seconds ago Up 6 seconds 0.0.0.0:80->80/tcp cocky_burnell
[root@k8s129 _data]# cd /var/lib/docker/volumes/xujin/_data/
[root@k8s129 _data]# ls
50x.html index.html
[root@k8s129 _data]# echo "我是新创建的xujin卷" >index.html #网页访问就会是我们刚才指定的内容了

第二种:
[root@k8s129 tools]# docker rm -f `docker ps -a -q` #删除所有容器
9e9fb65dc865
#启动nginx ,把本地的/tools目录(这个目录下面创建一个index.html文件)挂到nginx容器的/usr/share/nginx/html下
[root@k8s129 tools]# docker run -d -p 80:80 -v /tools/:/usr/share/nginx/html nginx
0a6b60ac3ec81aab2600fa68459a20cfc4e485beb2fc7cb88ecbe665add84f62
[root@k8s129 tools]#

思路扩展:指定多个IP端口映射,挂载多个目录。
docker run -d -p 80:80 -p 80:80 -v /tools/xiaoniao.conf:/etc/nginx/conf/ -v /tools/:/usr/share/nginx/html nginx

 

おすすめ

転載: www.cnblogs.com/jim-xu/p/11708615.html