码迷,mamicode.com
首页 > 其他好文 > 详细

Docker系列(二)---容器

时间:2015-07-11 06:46:51      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:docker   容器   linux   虚拟化   

创建容器

新建容器

方法一:

[root@docker1home]# docker run -it centos:6 echo "hello"

hello

方法二:

[root@docker1home]# docker create -it centos:6 echo "hello"

c97b4ca48ce2f2065230398c57955c9ab9a31a3af9301217a626a16471697451

技术分享

使用方法二创建的容易处于停止状态,使用docker start来启动它。docker run相当于先docker createdocker run

[root@docker1home]# docker start c97

c97

技术分享

当使用run命令来创建并启动容器时,docker在后台会运行如下标准操作:

1、检查本地是否存在指定的镜像,没有就从公有仓库下载;

2、利用镜像创建并启动一个容器;

3、分配一个filesystem,并在只读的镜像层外面挂载一个可读写层;

4、从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去;

5、从地址池分配一个ip地址给容器;

6、执行用户指定的应用程序;

7、指定完成后容器被终止。

 

启动一个bash终端,允许用户进行交互操作:

[root@docker1home]# docker run -it centos:6 /bin/bash

技术分享

-tdocker分配一个伪终端并绑定到容器的标准输入上

-i让容器的终端保持打开

 

在容器中使用ps –ef 查看发现容器中只运行了bash应用,没有其他进程。

使用exitctrl+D退出容器,退出之后该容器就出于终止状态

 技术分享

守护态运行容器

[root@docker1home]# docker run -d centos:6 /bin/bash -c "while true;do echo hello;sleep1;done"

技术分享

使用-d参数来实现守护态运行,会输出一个唯一的ID

[root@docker1home]# docker logs fb8

技术分享

在守护态运行时可以使用dockerlogs查看容器的输出信息

 

终止容器

[root@docker1~]# docker stop fb8

当一个容器中的应用结束时,它就会自动终止,docker stop终止容器时会先发送一个SIFTEAM信号,默10秒后再发送一个SIGKILL信号。

[root@docker1 ~]# docker ps -a -q

技术分享

docker ps -a –q命令只显示容器的ID信息。

出于终止状态的容器当然也可以使用docker start命令来重新启动。

 

进入容器

可以使用docker attachdocker exec命令或nsenter工具进入容器

[root@docker1~]# docker attach fae

技术分享

[root@docker1~]# docker exec -it fae /bin/bash

技术分享

下面使用nsenter命令进入容器,使用此命令先要获得容器的pid,具体操作方法如下:

[root@docker1~]# PID=$(docker inspect --format "{{ .State.Pid }}" fae)

[root@docker1~]# echo $PID

2013

[root@docker1~]# nsenter --target $PID --mount --uts --ipc --net --pid

[root@fae7382a0306/]#

 

删除容器

使用docker命令删除一个处于终止状态的容器,要删除一个在运行的容器,使用-f参数,Docker会发送一个SIGKILL信号给容器。

技术分享

技术分享

-f:强制删除运行中的容器;

-l:删除容器的链接,但保留容器;

-v:删除容器挂载的数据卷。

 

导入和导出容器

使用docker export命令可以导出某个容器

[root@docker1~]# docker export fb8 > firstexport.tar

技术分享

使用docker import命令可以导入某个容器

[root@docker1~]# cat testexport.tar |docker import - jutest/centos:v6

14a8da86fb1e97cc3e73ffd93ba205ab4c231cb4312256e187ab68dacb29595c


本文出自 “乾楠有” 博客,请务必保留此出处http://changfei.blog.51cto.com/4848258/1673075

Docker系列(二)---容器

标签:docker   容器   linux   虚拟化   

原文地址:http://changfei.blog.51cto.com/4848258/1673075

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!