docker容器管理

Docker containers

Docker containers are similar to a directory. A Docker container holds everything that is needed for an application to run. Each container is created from a Docker image. Docker containers can be run, started, stopped, moved, and deleted. Each container is an isolated and secure application platform. Docker 

参见https://docs.docker.com/v1.4/introduction/understanding-docker/

简单来说容器是镜像运行的一个实例,它带有额外的可写文件层。

1.新建容器docker create

[root@iZ25tr0o247Z ~]# docker create -it tanwei/centos:6.6
a07b9c8c5c056afa8e910d295509887c1203c5a0dffe3fafd1e6d4792d59eb72

查看所有容器,刚创建好的容器状态为空

[root@iZ25tr0o247Z ~]# docker ps -a
CONTAINER ID        IMAGE                                 COMMAND             CREATED             STATUS                         PORTS               NAMES
a07b9c8c5c05        tanwei/centos:6.6                     "/bin/bash"         19 seconds ago      


2.新建并启动容器docker run,如果加上-d参数就是以daemonnized方式运行容器。

3.启动容器docker start(如果没有-i,可以先start后attach进容器)

[root@iZ25tr0o247Z ~]# docker start -i a07b9c8c5c05
a07b9c8c5c05
[root@a07b9c8c5c05 /]# 

启动后的容器状态为Up

[root@iZ25tr0o247Z ~]# docker ps -a
CONTAINER ID        IMAGE                                 COMMAND             CREATED             STATUS                         PORTS               NAMES
a07b9c8c5c05        tanwei/centos:6.6                     "/bin/bash"         6 minutes ago       Up 54 seconds 

在容器中我们可以用exit退出容器

[root@a07b9c8c5c05 /]# exit
exit

退出后再次查看容器状态为Exited

CONTAINER ID        IMAGE                                 COMMAND             CREATED             STATUS                         PORTS               NAMES
a07b9c8c5c05        tanwei/centos:6.6                     "/bin/bash"         8 minutes ago       Exited (0) 25 seconds ago  

4.终止容器docker stop

 [root@iZ25tr0o247Z ~]# docker ps -a
CONTAINER ID        IMAGE                                 COMMAND             CREATED             STATUS                         PORTS               NAMES
a07b9c8c5c05        tanwei/centos:6.6                     "/bin/bash"         13 minutes ago      Up 5 seconds                                       romantic_mayer      
[root@iZ25tr0o247Z ~]# docker stop a07b9c8c5c05
a07b9c8c5c05

stop默认会在10秒钟后发磅SIGKILL信号终止容器,docker kill会直接强行终止容器。

5.重启容器docker restart

6.进入容器docker attach,可以使用docker exec执行命令更方便。

[root@iZ25tr0o247Z ~]# docker exec -it a07b9c8c5c05 /bin/bash
[root@a07b9c8c5c05 /]# 

7.删除容器docker rm

[root@iZ25tr0o247Z ~]# docker rm a07b9c8c5c05
Error response from daemon: You cannot remove a running container. Stop the container before attempting removal or use -f
FATA[0000] Error: failed to remove one or more containers 

删除运行时容器需要加-f参数,或者先stop停止窗口,再rm删除。删除完成后docker ps -a中就没有了刚删除的容器。

8.导出容器docker export,运行中的容器也可以导出

[root@iZ25tr0o247Z ~]# docker ps -a
CONTAINER ID        IMAGE                                 COMMAND             CREATED             STATUS                         PORTS               NAMES
5cdc9cfe9b70        centos:6.6                            "/bin/bash"         2 hours ago         Up 10 seconds    

[root@iZ25tr0o247Z ~]# docker export 5cdc9cfe9b70 > centos_6.6_bak.tar
[root@iZ25tr0o247Z ~]# ll
total 247954432
-rw-r--r-- 1 root root 247954432 Apr  7 15:32 centos_6.6_bak.tar

9.导入容器docker import ,最终成为镜像

[root@iZ25tr0o247Z ~]# cat centos_6.6_bak.tar | docker import - test/centos:6.6
794583e66f588f20691dffe4e572d51dc49ebca9f083f6d10a8ffe4bb3c2f539

[root@iZ25tr0o247Z ~]# docker images
REPOSITORY                                   TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
test/centos                                  6.6                 794583e66f58        37 seconds ago      237.8 MB

import与load的区别是容器快照丢弃所有历史记录和元数据信息。

相关文章
相关标签/搜索