docker容器操作详解


 
run 运行容器
exec 可以在容器中执行命令或者进入容器
ps 查看当前运行的容器
rm 删除容器,默认删除不了正在运行的容器,-f
inspect 查看容器的详细信息,也可以查看镜像的信息
stats 查看容器的运行状态
stop 停掉容器
kill 强制杀掉容器
start 启动容器
logs 查看容器产生的日志信息
rename 对容器改名
top 查看容器的系统内存,磁盘使用信息
pause 暂停容器
unpause 开启容器
pcommit 使用当前运行的容器制作镜像
ls 查看当前运行的容器
restart 重启容器
top 查看容器的系统内存,磁盘使用信息
 
 
例子1:启动容器
前台运行容器
-i: 交互模式
-t: 分派终端
[root@zxw99 ~]# docker run -ti busybox /bin/sh
/ #

 

后台运行容器
开启容器的服务
-d: 守护进程
[root@zxw99 ~]# docker run -d -p 80:80 nginx
[root@zxw99 ~]# docker run -d -it busybox
[root@zxw99 ~]# docker run --name nginx -d --rm nginx
--name 指定容器名字
-d 后台运行
--rm 容器停掉之后自动删除

 

在容器外执行命令
[root@zxw99 ~]# docker run -ti busybox ls
bin dev etc home proc root sys tmp usr var

 

后台运行容器的时候执行命令
[root@zxw99 ~]# docker exec -it 41d2872d3e6a ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr

 

bash和sh区别
[root@zxw99 log]# docker exec -it ng bash
root@1bde5ceb35f7:/# exit
exit
[root@zxw99 log]# docker exec -it ng sh
# exit

 

查看当前运行命令
[root@zxw99 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2300907aaad9 nginx "nginx -g 'daemon of…" 19 seconds ago Up 18 seconds 80/tcp hungry_kilby
查看所有已经运行的或退出的
[root@zxw99 ~]# docker ps -a

 

删除容器
长:ID
[root@zxw99 ~]# docker rm 191e23b29ad1
短:ID
[root@zxw99 ~]# docker rm 191e2
容器名:
[root@zxw99 ~]# docker rm kind_wozniak

 

批量删除容器(只能删除以机退出的容器)
[root@zxw99 ~]# docker rm $(docker ps -qa)
9080694f3330
c384fe8fad08
940c80e93eb4
-f:强制删除

 

查看容器详细信息
[root@zxw99 ~]# docker inspect busybox
[root@zxw99 ~]# docker history nginx

 

查看容器的运行状态
[root@zxw99 ~]# docker stats c59650cb4435
可改变里别的参数
[root@zxw99 ~]# docker run -d -m 64M nginx

 

停止容器服务
stop停止
ID停止
[root@zxw99 ~]# docker stop 6cf30c091e8c
名字停止
[root@zxw99 ~]# docker stop nginx

 

kill停止
[root@zxw99 ~]# docker kill 1bde5ceb35f7
stop和kill区别
stop优雅退出(退出时候先发出-15,10秒之后-9)
Kill -9立刻宗旨推出

 

启动停止的容器
[root@zxw99 ~]# docker start 1bde5ceb35f7
1bde5ceb35f7

 

查看容器日志
[root@zxw99 ~]# docker logs 1bde5ceb35f7
检查日志
[root@zxw99 log]# docker logs 1bde5ceb35f7 -f

 

运行容器改名
[root@zxw99 log]# docker rename ecstatic_cerf busybox
查看容器的系统内存,磁盘使用信息
指定名字和ID
[root@zxw99 log]# docker top ng
[root@zxw99 log]# docker top ng

 

暂停容器
[root@zxw99 log]# docker pause ng
ng
[root@zxw99 log]# docker ps
31 minutes (Paused) #暂停

 

开启暂停
[root@zxw99 log]# docker unpause c5965

 

查看端口映射信息
[root@zxw99 log]# docker port ng
[root@zxw99 log]# docker port 1bde5ceb35f7

进入容器的方法4种
方法一:exec#在容器里别退出,容器本身不会退出
方法二:attach# 退出时候容器退出
方法三:ssh
方法四:nsnter

 

 

端口映射
四类端口映射:
 镜像分:
1.工具类的镜像
交换模式dockers run -it
2.服务类的镜像
端口模式使用docker -d -p
第一类:把容器的端口随机映射为物理机的一个端口
第二类:把容器的端口映射为物理机特定的一个端口
第三类:把容器的端口映射为物理机特定网卡上的特定端口
第四类:把容器的端口映射为物理机特定网卡上的随机端口
 
第一类:把容器的端口随机映射为物理机的一个端口
使用的是大写的-P
注意:
使用-P选线。是把容器内所有expose的端口都映射为物理机的随机端口

 

[root@zxw66 ~]# docker run -d -P httpd:v1
56bf0d4a3da35cc85b454d76d31e33b4d6a44289e7e68a6dbbadc8bbf595a12c
[root@zxw66 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
56bf0d4a3da3 httpd:v1 "httpd-foreground" 18 seconds ago Up 17 seconds 0.0.0.0:32768->80/tcp intelligent_chebyshev
8cfaa2ddb0cd httpd:v1 "httpd-foreground" 9 minutes ago Up 9 minutes 0.0.0.0:80->80/tcp youthful_nightingale
[root@zxw66 ~]# docker port 56bf0d4a3da3
80/tcp -> 0.0.0.0:32768

 

 

 

第二类:把容器的端口映射为物理机特定的一个端口
[root@zxw66 ~]# docker run -d -p 80:80 httpd:v1
第一步端口为宿主机端口:第二个端口为容器服务端口
[root@zxw66 ~]# docker run -d -p 22:80 httpd

 


第三类:把容器的端口映射为物理机特定网卡上的特定端口
[root@zxw66 ~]# docker run -d -p 192.168.126.128::80 httpd:v1
13599a1c5d2d8431420fd726e97b81385447c884050721ea0db9ff1504c7911b

 


第四类:把容器的端口映射为物理机特定网卡上的随机端口
[root@zxw66 ~]# docker run -d -P httpd:v1
0db80aefba1f349f5996ff29dcbeeb4f3528c49133bd36772a0c8b7239c862a0
[root@zxw66 ~]# docker port 0db80aef
80/tcp -> 0.0.0.0:32768

 

 

复制一份到本地
[root@zxw99 ~]# docker container cp f277b296c31c:/usr/local/apache2/logs .

复制一份到容器
[root@zxw99 ~]# docker container cp zxw f277b296c31c:/usr/local/apache2/

 

原文地址:https://www.cnblogs.com/itzhao/p/11346729.html