容器管理相关命令

容器管理
创建容器但不启动

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

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

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

断开容器而不关闭
快捷键:ctrl+p+q
查看只运行的容器

dicker ps
-a  查看所有容器
-q  只查看所有容器id
-l   列出最近一次启动的容器

查看容器详细信息
inspect Return low-level information on a container or image
用于查看容器的配置信息,包含容器名、环境变量、运行命令、主机配置、网络配置和数据卷配置等。
过滤出容器的ip

docker inspect --format='{{.NetworkSettings.IPAddress}}'  容器id

查看容器的详细信息

docker inspect 容器ID

启动关闭容器

docker start 容器名或者容器id、
docker rename 容器名 容器新名   #容器重命名
docker status 容器名        # 查看容器运行状态
docker port 容器名          #查看容器端口映射
docker stop  name    #关闭容器
docker kill    name     #-强制终止容器
杀死所有running状态的容器
docker kill $(docker ps  -q) 

删除容器:

docker rm 容器id或名称
要删除一个运行中的容器,添加 -f 参数

根据格式删除所有容器:

docker rm $(docker ps -qf status=exited)   #删除所有退出状态的容器

查看容器运行日志

docker logs 容器ID

连接容器
方法1.attach

# docker attach 容器id   //前提是容器创建时必须指定了交互shell

方法2.exec
通过exec命令可以创建两种任务:后台型任务和交互型任务
交互型任务:

docker exec -it  容器id  /bin/bash
root@68656158eb8e:/# ls     

后台型任务:

docker exec 容器id touch /testfile

监控容器的运行:
可以使用logs、top、events、wait这些子命令
logs:
使用logs命令查看守护式容器
可以通过使用docker logs命令来查看容器的运行日志,其中--tail选项可以指定查看最后几条日志,而-t选项则可以对日志条目附加时间戳。使用-f选项可以跟踪日志的输出,直到手动停止。

# docker logs    App_Container   //不同终端操作
# docker logs -f App_Container

top:
显示一个运行的容器里面的进程信息

# docker top 容器id

events
实时输出Docker服务器端的事件,包括容器的创建,启动,关闭等。

# docker start loving_meninsky
# docker events  //不同终端操作 

wait

Block until a container stops, then print its exit code   
--捕捉容器停止时的退出码
执行此命令后,该命令会"hang"在当前终端,直到容器停止,此时,会打印出容器的退出码
# docker wait 01d8aa  //不同终端操作

diff

查看容器内发生改变的文件,以elated_lovelace容器为例
root@68656158eb8e:/# touch c.txt
用diff查看:
包括文件的创建、删除和文件内容的改变都能看到 
[root@master ~]# docker diff  容器名称
C对应的文件内容的改变,A对应的均是文件或者目录的创建删除

宿主机和容器之间相互COPY文件
cp的用法如下:

Usage:    docker cp [OPTIONS] CONTAINER:PATH LOCALPATH
如:容器mysql中/usr/local/bin/存在docker-entrypoint.sh文件,可如下方式copy到宿主机
docker cp mysql:/usr/local/bin/docker-entrypoint.sh   /root
修改完毕后,将该文件重新copy回容器
docker cp /root/docker-entrypoint.sh mysql:/usr/local/bin/      
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 镜像 获取镜像 docker pull 拉取镜像 格式: docker pull [选项] [Docker Reg...
    小小了墨阅读 2,126评论 1 1
  • 作者:自由早晚乱余生自由早晚乱余生博客园:https://www.cnblogs.com/operationhom...
    码农小光阅读 672评论 0 11
  • 你对别人要求少一点,就不会总失望。你对自己要求严一点,就不会总沮丧。一个人最好的状态是,眼里写满了故事,脸上却不见...
    爱心客站阅读 246评论 0 0
  • 日子像流水淙淙而过,转眼三分之一的时光已经没有了,怎一个快字了得。岁月不饶人,回想起来,四十八个年头啊!转瞬即逝。...
    雾海凝眸阅读 257评论 0 0
  • 竹蜻蜓他利用螺旋桨的空气动力学实现垂直升空,这种在晋朝年间,中国人发明的一种玩具,想必大家都玩儿过,当我...
    我是八爷阅读 1,688评论 1 4