docker 容器常見操做html
1: docker的容器管理命令詳解:nginx
docker run -d -p 80:80 nginx:latest
run(建立並運行一個容器)
-d 放在後臺
-p 端口映射
-v 源地址(宿主機):目標地址(容器)
nginx:latest docker鏡像的名字,最後一個版本docker
運行一個centos,並進入容器終端:
docker search centos 找到官方的centos鏡像
docker pull centos
docker run -it --name centos centos /bin/bash
-it 分配交互式的終端
--name 指定容器的名字
/bin/bash 進入容易後執行的命令,覆蓋容器的初始命令centos
運行後進入容器鏡像終端:
[root@4b3716037b2b /]# hostname -I
172.17.0.2
[root@4b3716037b2b /]# exit #退出容器即銷燬
臨時退出容器不銷燬方法:ctrl + p 而後鬆開,再按住ctrl +q bash
查看容器列表
docker ps #docker container ps (正在運行的容器)
docker ps -a #docker container ps -a (全部運行過的容器,包括已經退出的)
docker ps --no-trunc 顯示所有,長格式顯示網絡
[root@k8s129 ~]# docker run -d centos sleep 10 (使用後臺方式啓動容器,並直接一個命令sleep 10)
651d87d5be24cca4f7a37a25f8d87266b9e8a8b4bcf724106d55bb2c4b030da9
[root@k8s129 ~]# docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
651d87d5be24 centos "sleep 10" 8 seconds ago Up 7 seconds compassionate_lumiere
4b3716037b2b centos "/bin/bash" 14 minutes ago Exited (0) 12 minutes ago centos
742f43349c54 nginx "nginx -g 'daemon of…" 13 hours ago Exited (0) 12 hours ago competent_allen
[root@k8s129 ~]# docker container ps -a (10S事後這個容器就會結束退出了。)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
651d87d5be24 centos "sleep 10" 2 minutes ago Exited (0) 2 minutes ago compassionate_lumiere
4b3716037b2b centos "/bin/bash" 17 minutes ago Exited (0) 15 minutes ago centos
742f43349c54 nginx "nginx -g 'daemon of…" 13 hours ago Exited (0) 12 hours ago competent_allen
[root@k8s129 ~]# docker run -d centos (不指定,默認執行鏡像製做時候指定的進程命令,好比centos鏡像是/bin.bash , nginx鏡像是nginx -g `daemon of.....`)tcp
正常中止容器:
docker stop CONTAINER_ID或者NAMESspa
[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或者NAMEShtm
刪除容器 # 只能刪除已經退出的容器,正在運行的容易須要先中止,才能刪除 或者加-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 81:81 -v /tools/xiaoniao.conf:/etc/nginx/conf/ -v /tools/:/usr/share/nginx/html nginx