设为首页 收藏本站
查看: 1067|回复: 0

[经验分享] Docker容器管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-3-22 08:22:13 | 显示全部楼层 |阅读模式
1.创建一个容器,但该容器并没有启动docker create -it centos   //这样可以创建一个容器,但该容器并没有启动

docker start container_id  //启动容器后,使用docker ps查看到,也有stop、restart命令

例:
1
2
3
4
5
6
7
[iyunv@localhost ~]# docker create -it centos
2aa9982b82a2f91891c1560f6fb21f41b628115de9903630664523139996fbfd
[iyunv@localhost ~]# docker ps -a
CONTAINER ID    IMAGE   COMMAND      CREATED    STATUS    PORTS       NAMES
2aa9982b82a2    centos  "/bin/bash"    2 minutes ago   condescending_pasteur
[iyunv@localhost ~]# docker exec -it 2aa9982b82a2 /bin/bash //进入该运行的容器
[iyunv@2aa9982b82a2 /]#







2. 依托已有镜像创建并启动一个容器 :
# docker run -it 已有镜像名 /bin/bash
例: docker run -it centos /bin/bash
1
2
[iyunv@localhost ~]# docker run -itd --name daixuan centos /bin/bash
[iyunv@70d4c5435c88 /]#



之前我们使用的docker run 相当于先create再start

如果是修改过TAG的镜像 要加镜像名:TAG 因为镜像默认的 TAG 为 latest,可以省略
要把 选项 放到镜像名前
-i 表示让容器的标准输入打开
-t 表示分配一个伪终端
/bin/bash 表示在这个容器里面运行的一个命令 也可以直接写为 bash
-d 选项直接放到后台运行,如果不加 -d,exit后,这个容器会关闭

-p 可以指定容器的映射端口 格式为 -p 宿主机端口:容器端口 详见创建私有仓库一节

--name 指定容器的NAME列显示,例如:

1
2
3
4
5
[iyunv@localhost ~]# docker run -itd --name daixuan centos  bash
f29f8fdfb7b16956e4684a3c83b7f66559d1837ac4554cc99566866365f0fd2c
[iyunv@localhost ~]# docker ps
CONTAINER ID  IMAGE  COMMAND  CREATED STATUS  PORTS      NAMES
f29f8fdfb7b1  centos "bash"  10 seconds ago Up  8 seconds   daixuan




3. 启动关闭一个容器:
# docker start CONTAINER_ID/NAME
# docker stop CONTAINER_ID/NAME
例:docker start 0da8
  docker start zhpro

CONTAINER_ID NAME 为dokcer ps -a出来的第一列 和最后的NAMES列
也可以同时启动关闭多个:

例:
1
2
3
4
5
6
7
[iyunv@localhost ~]# docker start daixuan  evil_ptolemy
daixuan
evil_ptolemy
[iyunv@localhost ~]# docker ps
CONTAINER ID  IMAGE  COMMAND  CREATED   STATUS   PORTS         NAMES
f29f8fdfb7b1  centos   "bash"  25 minutes ago   Up 7 seconds  daixuan  
32bbf2a2807d   centos   "bash" 59 minutes ago   Up 7 seconds  evil_ptolemy




4. 进入一个容器

# docker exec -it CONTAINER_ID /bin/bash
# docker attach CONTAINER_ID
1
2
3
4
5
6
7
8
9
10
11
[iyunv@localhost ~]# docker exec -it f29f8fdfb7b1 /bin/bash
[iyunv@f29f8fdfb7b1 /]#
[iyunv@f29f8fdfb7b1 /]# exit
exit
[iyunv@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED
f29f8fdfb7b1        centos              "bash"              11 minutes ago
[iyunv@localhost ~]# docker attach  f29f8fdfb7b1
[iyunv@f29f8fdfb7b1 /]#
[iyunv@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED



注意区别:使用 attach 命令如果退出容器,这个容器同时也会终止 ,exec退出容器,容器继续运行
如果用--name 指定了容器名的话,后面也可以跟容器名 例: #docker exec -it daixuan bash


5. 查看正在运行的容器或所有容器:
# docker ps     //查看正在运行容器
# docker ps -a   //查看所有容器

6. 删除一个容器:
# docker rm CONTAINER_ID/NAME

-f 选项可强制删除一个容器,如果这个容器正在运行的话
也可以同时删除多个

例:# docker rm daixuan evil_ptolemy
注意:删除容器:rm,删除镜像:rmi

7. 启动容器的同时也可以运行一些命令
例: # docker run -d centos bash -c "while :;do echo "123"; sleep 3;done "
1
2
[iyunv@localhost ~]# docker run -d centos:latest bash -c "while :; do echo 123; sleep 3; done"
58fe37c071aea5f04a080004d43747db53f5ce607b366f48ce9b0e9f634769c8




8. 查看容器的日志输出信息
# docker logs CONTAINER_ID
1
2
3
4
[iyunv@localhost ~]# docker logs 58fe37c071a
123
123
123




9. 导入导出容器 -方便迁移
# docker export CONTAINER_ID > file.tar          //容器导出使用export
# cat file.tar | docker import - 自定义镜像名      //容器导入使用import
为什么导入时候是镜像呢? 因为容器导出成文件,导出的是一个死的镜像,容器是作为一个镜像导入的,需要在镜像的基础上,在去产生并 docker run 这个容器

比如说openvz下载下来的镜像其实是容器需要这样导入:

cat 包名.tar.gz |docker import - 镜像名(可自定义)  //区别:容器导入import,镜像导入load

例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[iyunv@localhost ~]# docker start 8a92dd7fcc8b
8a92dd7fcc8b
[iyunv@localhost ~]# docker ps
CONTAINER ID  IMAGE   COMMAND    CREATED    STATUS    PORTS               NAMES
8a92dd7fcc8b  centos  "bash -c 'while :; d  21 minutes ago Up 2 minutes   focused_pasteur
[iyunv@localhost ~]# docker export 8a92dd7fcc8b > daixuan_linux.tar
[iyunv@localhost ~]# ls
daixuan_linux.tar
[iyunv@localhost ~]# docker rm -f 8a92dd7fcc8b
8a92dd7fcc8b
[iyunv@localhost ~]# docker ps
CONTAINER ID   IMAGE   COMMAND  CREATED    STATUS PORTS       NAMES
[iyunv@localhost ~]# cat daixuan_linux.tar | docker import - daixuan_linux
1eada4829386695938a03c59ffc176bf3facf7bdb20c1c37f3ca91c3d84e6923
[iyunv@localhost ~]# docker images
REPOSITORY         TAG    IMAGE ID       CREATED         VIRTUAL SIZE
daixuan_linux     latest  1eada4829386   4 minutes ago   196.6 MB
[iyunv@localhost ~]# docker run -itd daixuan_linux bash
aa81ccc62e046860ddb5d5f22cb3427dbfad7719198bb20cd854cfad9dc13a9a
[iyunv@localhost ~]# docker ps
CONTAINER ID    IMAGE    COMMAND    CREATED    STATUS     PORTS     NAMES
aa81ccc62e04   daixuan_linux   "bash"   7 seconds ago  Up 6 seconds  thirsty_perlman




10. 新建一个容器,退出时自动删除这个容器

--rm

docker run --rm -it centos bash -c"sleep 30" //--rm可以让容器退出后直接删除,在这里命令执行完容器就会退出,不能和-d一起使用



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-194016-1-1.html 上篇帖子: docker迁移容器 下篇帖子: Docker数据管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表