docker容器

容器(docker)

容器是一门技术,不只是docker,docker是容器的实现,还有类似podman的技术,容器属于云计算范畴,不能代替虚拟化。

docker、rocket、warden

docker基本操作

#images/container
docker images -a
docker rmi [IMAGES ID] 
docker rmi -r [IMAGES ID]
docker rmi `docker images -q`

docker ps -a 
docker rm [CONTAINER ID] 
docker rm -r [CONTAINER ID] 
docker rm `docker ps -aq`

#tag
docker tag xxxx:xxxx xxxx:xxxx

#search镜像
docker search [IMAGES ID]

#Docker镜像导出
#-o参数表示输出为指定的文件
docker save ubuntu:latest -o ubuntu-latest.tar

#Docker镜像导入
#-i参数表示导入指定的文件
docker load -i ubuntu-latest.tar
docker load < ubuntu-latest.tar

docker运行

1. 一次性运行容器
#需要注意的是如果docker run 后面指定的镜像没有加tag,那么默认就会运行tag为latest的镜像。
docker container run xxx

2. 交互式运行容器
#-i就表示交互的意思
#-t就表示tty,表示为容器开启一个终端
#-p [主机端口:容器端口] 表示指定端口
#--name [容器名] 表示指定容器名
docker run -it centos

#容器并没有/boot目录,原因也很好理解,因为容器不是操作系统,所以不需要引导,也自然就没有内核存放的位置。
#容器第一个进程为/bin/bash之类的,主机第一个进程为/usr/lib/systemd/systemd
#因此exit退出容器,就相当于结束了容器操作系统的生命周期

#如果你使用-i -t参数以交互式的形式运行了容器,那么你可以使用ctrl+p+q(按住ctrl,再按p,p松手,再按q)临时的退出容器,这个容器就并没有真正的被关闭。

docker ps -a
docker attach xxxxxx



3. 后台运行容器
#-d参数表示daemon,表示将容器以守护进程的形式运行
docker run -d centos
#那为什么在后台运行之后也是直接退出了呢?运行一次在前台退出和在后台退出是一样的。就好比运行一个ls命令一样,不管你是在前台运行还是在后台运行,都是运行完之后就退出

#如何让一个容器在运行之后不退出呢?我们需要增加一个-t参数,-t参数的意思是开启一个终端
#docker run "image" "command"后面的command会替代image构建的最后一个命令。
docker run -dt centos /bin/bash

4. 进入容器
docker exec -it 1facba8577ae bash
#假如run的时候使用的是/bin/bash, exec使用的是bash,进入容器后退出,这里只退出了bash的终端,/bin/bash的依然存在。
[root@646717583ed6 /]# ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  12036  1960 pts/0    Ss+  13:12   0:00 /bin/bash
root        15  0.5  0.2  12036  2120 pts/1    Ss   13:16   0:00 bash
root        29  0.0  0.2  47572  2088 pts/1    R+   13:16   0:00 ps -aux

容器的生命周期管理

1. 容器的启动
docker run / docker container run
2. 容器的正常停止
docker stop [CONTAINER ID]
3. 容器的手动启动
#没有加-d参数的容器,即使我们将它手工启动,也不会让他持续性运行
#只有以后台的形式运行的容器才有生命周期管理的意义
docker start [CONTAINER ID]
#Exited后面有一个数字,数字代表着容器结束时候的返回值,返回值是0表示容器是正常结束的,返回值非0表示容器是非正常结束的

4. 容器强制杀掉
docker kill [CONTAINER ID] 

5.容器的重启
docker restart [CONTAINER ID] 

查看容器信息

1.查看容器log
#重命名容器名称
docker run -dt --name web nginx
docker logs web

2. 查看容器进程
#一般情况你可以进入到容器内部使用ps命令查看容器的进程信息,但并不是所有的容器都支持这么操作
[root@localhost ~]# docker exec -it centos-test bash
[root@localhost ~]# docker exec -it web bash
root@cf839d63840e:/# ps aux
bash: ps: command not found
root@cf839d63840e:/# top
bash: top: command not found
root@cf839d63840e:/# exit
docker top web

3. 查看容器内部细节
#返回json格式的所有容器信息
docker inspect web

4.容器与主机间的文件拷贝
#将ubuntu-latest.tar拷贝到centos-test容器的根目录下
docker cp ./ubuntu-latest.tar centos-test:/
#将centos-test容器目录下的ubuntu-latest.tar拷贝到主机当前目录下
docker cp centos-test:/ubuntu-latest.tar .

容器和镜像的清理

# This will remove all stopped containers
docker container prune
# This will remove all dangling images
docker image prune
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值