Docker容器管理

一.Docker容器管理

创建新容器但不启动

docker create -it daocloud.io/1ibrary/centos :5/bin/bash

创建并运行一个新Docker容器
同一个镜像可以启动多个容器,每次执行run子命令都会运行一个全新的容器

docker run -it --restart=a1ways centos /bin/bash

如果执行成功,说明centos容器已经被启动,并且应该已经得到了 bash提示符。
-i
捕获标准输入输出
-t
分配一个终端或控制台
–restart=always
容器随docker engine自启动,因为在重启docker的时候默认容器都会被关闭也适用于create选项
–rm
默认情况下,每个容器在退出时,它的文件系统也会保存下来,这样一方面调试会方便些,因为你可以通过查看日志等方式来确定最终状态。另一方面,也可以保存容器所产生的数据。
但是当你仅仅需要短暂的运行一个容器,并且这些数据不需要保存,你可能就希望Docker能在容器结束时自动清理其所产生的数据。这个时候就需要–rm参数了。注意: --rm-d不能共用

容器名称
–name=Assign a name to the container
–为容器分配一个名字,如果没有指定,docker会自动分配一个随机名称是docker run子命令的参数

可以通过三种方式调用容器命名:
1)使用UUID长命名(“f78375b1c487e03c9438c729345e54db9d20cfa2ac1fc3494b6eb60872e74778”)

2)使用UUID短Id ( “f78375b1c487”)

3)使用Name(“evi1_ptolemy”)

这个UUTD标识是由Docker deamon生成的。

如果你在执行docker run时没有指>-name,那么deamon会自动生成一个随机字符串UUID。但是对于一个容器来说有个name会非常方处,当你需要连接其它容器时或者类似需要区分其它容器时,使用容器名称可以简化操作。无论容器运行在前台或者后台,这个名字都是有效的。

保存容器PID equivalent:
如果在使用Docker时有自动化的需求,你可以将containerID输出到指定的文件中(PIDfile),类似于某些应用程序将自身ID输出到文件中,方便后续脚本操作。

--cidfile="": write the container ID to the file

断开与容器的连接,并且关闭容器:

root@d33c4e8c51f8 /#exit

如果只想断开和容器的连接而不关闭容器:
快捷键: ctrl+p+q

查看容器:
只查看运行状态的容器:dokcer ps
查看所有的容器: docker ps -a
只查看所有容器id:docker ps -a -q
列出最近一次启动的容器(了解): docker ps -l
查看容器或者镜像详细信息: docker inspect id(容器id或者镜像id)

提示:可以使用镜像id的前面部分,不需要完整的id。

列出所有绑定的端口

docker inspect --format='{{range $p,$conf :=.NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' 609d6c4b484f(容器名称或者容器id)

或者

docker inspect 782e2d193788(容器id) | grep IPAddr

启动容器:docker start 1116f0cc653b(容器id)
关闭容器:

docker stop docker start 1116f0cc653b(容器id)
docker kill 782e2d193788(容器id) 

杀死所有runing状态的容器:

docker kill $(docker ps -q)

stop和kill的区别

docker stop命令给容器中的进程发送SIGTERM信号,默认行为是会导致容器退出,当然,容器内程序可以捕获该信号并自行处理,例如可以选择忽略。而docker kill则是给容器的进程发送SIGKILL信号,该信号将会使容器必然退出。

docker rm容器id或名称要删除一个运行中的容器,添加-f参数
根据格式删除所有容器:

docker rm $(docker ps -qf status=exited)

重启容器:

docker restart name

暂停容器:
pause–暂停容器内的所有进程,
通过docker stats可以观察到此时的资源使用情况是固定不变的,通过docker logs -f也观察不到日志的进一步输出。
恢复容器:

unpause–恢复容器内暂停的进程,与pause参数相对应

docker start 782e2d193788

这里的名字是状态里面NAMES列列出的名字,这种方式同样会让容器运行在后台
让容器运行在后台:

如果在docker run后面追加-d=true或者-d,那么容器将会运行在后台模式。此时所有I/o数据只能通过网络资源或者共享卷组来进行交互。因为容器不再监听你执行docker run的这个终端命令行窗口。但你可以通过执行docker attach来重新附着到该容器的回话中。
例如:

dokcer attach 782e2d193788 (容器id或者容器名字)
docker exec -it 782e2d193788  /bin/bash
docker run -it 782e2d193788 /bin/bash
以上均为进入容器命令
hostname -i (在容器内部查看容器ip)
docker logs 容器id(容器名字) ---> 查看容器的记录
例如:
docker run -it -d --name=mybox111 busybox /bin/sh -c "while true; do echo hellow word123;sleep 2;done"

docker logs mybox111

hellow word123
hellow word123
hellow word123
hellow word123
hellow word123
hellow word123
hellow word123

查看所有状态为exited的容器

docker ps -aqf status=exited
docker rm $(docker ps -aqf status=exited)

修改容器名字

docker rename mybox07(原有) mybox123(修改后) 

查看容器的内部状态

docker stats mybox123

CONTAINER ID   NAME       CPU %     MEM USAGE / LIMIT   MEM %     NET I/O       BLOCK I/O         PIDS
88d6209f1d08   mybox123   0.00%     124KiB / 3.685GiB   0.00%     2.42kB / 0B   1.52MB / 8.19kB   1

查看端口情况

docker port harbor-log
514/tcp -> 127.0.0.1:1514

查看文件的创建、删除和文件内容的改变都能看到

docker diff mybox123
A /a.sh
C /root
A /root/.ash_history

docker attach mybox123 --进入容器
touch 123.txt -->创建文件

docker diff mybox123
C /root
A /root/.ash_history
A /123.txt
A /a.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker容器管理是指对已创建的容器进行操作和管理,包括查看容器状态、启动/停止容器、删除容器等。以下是一些常见的Docker容器管理操作: 1. 查看正在运行的容器: 使用命令`docker ps`可以列出当前正在运行的容器。加上`-a`参数可以显示所有容器,包括已停止的。 2. 启动和停止容器: - 使用命令`docker start <容器ID或名称>`可以启动一个已创建但停止的容器。 - 使用命令`docker stop <容器ID或名称>`可以停止一个正在运行的容器。 3. 进入容器: 使用命令`docker exec -it <容器ID或名称> <命令>`可以在正在运行的容器中执行命令。加上`-it`参数可以进入交互模式,例如`docker exec -it <容器ID或名称> /bin/bash`可以进入容器的Shell。 4. 删除容器: 使用命令`docker rm <容器ID或名称>`可以删除一个已停止的容器。加上`-f`参数可以强制删除正在运行的容器。 5. 查看容器日志: 使用命令`docker logs <容器ID或名称>`可以查看容器的日志输出。 6. 查看容器详细信息: 使用命令`docker inspect <容器ID或名称>`可以查看容器的详细配置信息,包括网络设置、挂载的数据卷等。 7. 复制文件到/从容器: - 使用命令`docker cp <本地文件路径> <容器ID或名称>:<容器内路径>`可以将本地文件复制到容器内。 - 使用命令`docker cp <容器ID或名称>:<容器内路径> <本地文件路径>`可以将容器内的文件复制到本地。 这些是Docker容器管理的一些常见操作,希望对你有所帮助。如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值