简单地说,容器是镜像的一个运行实例,所不一样的是,它有额外的可写文件层。node
若是认为虚拟机是模拟运行的一整套操做系统(提供了运行态环境和其余系统环境)和跑在上面的应用。那么docker 容器就是地理运行的一个或一组应用,以及它们的必需运行环境。docker
1.1 建立docker 容器 centos
新建容器 能够使用 docker create 命令新建一个容器,例如:bash
[root@node1 ~]# docker create -it centos:centos6 /bin/bashide
*其中 -t 表示 进入终端 -i 表示容器的标准输入保持打开。工具
使用 docker create 命令新建的容器处于中止的状态,能够使用docker start 命令来启动它spa
Docker start (ID)操作系统
新建并启动容器3d
启动容器有二种方式,一种基于镜像新建一个容器并启动,另一个是将在终止的状态的容器从新启动。所须要的命令主要为 docker run,等价于先执行 docker create命令 在执行 docker restart 命令rest
docker run -t -i centos:centos6 /bin/bash
当利用docker run 来建立并启动容器时,docker 在后台运行的标准操做包括:
1.检查本地是否存在指定的镜像,不存在就从公有仓库下载。
2.利用镜像建立并启动一个容器。
3.分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
4.从宿主机配置的网桥中接口中桥接一个虚拟接口到容器中去。
5.从地址池配置一个ip地址给容器。
6.执行用户知道的应用程序。
7.执行完毕后容器被终止。
用 exit 或者ctrl+d 则退出容器 若是容器退出 则关闭容器,能够使用 docker start 重启里面的服务 不会开启。
守护状态运行
更多的时候,须要让docker容器在后台以守护态形式运行。用户能够经过添加-d参数来添加
[root@node1 ~]# docker run -d centos:centos6 /bin/bash -c "while true;do echo hello world;sleep 1; done"
要获取容器的输出信息,能够经过docker logs 命令
docker logs 容器id
终止容器
能够使用 docker stop 来终止一个运行中的容器,
[root@node1 ~]# docker stop d130a7e46842
处于终止状态的容器,能够经过docker start 命令来从新启动;
[root@node1 ~]# docker start d130a7e46842
还能够使用 docker restart 命令将一个运行态的容器终止,而后在从新启动它
[root@node1 ~]# docker restart d130a7e46842
进入容器
Docker 1.3版本起,提供了一个更加方便的工具exec,能够直接在容器内运行命令。
docker exec -ti d130a7e46842 /bin/bash
用exit 后 不关闭容器 而是在后台继续运行
删除容器
能够使用docker rm命令删除处于终止状态的容器,命令格式为 docker rm ,支持的选项包括
-f 强行终止并删除一个运行中的容器。
-l了删除容器的链接,但保留容器。
-v 删除容器挂载的数据卷、
[root@node1 ~]# docker rm d130a7e46842
若是要删除一个运行中的容器,能够添加-f参数
[root@node1 ~]# docker rm -f e41acf350912
导入和导出容器 (重点)
导出容器是指导出一个已经建立的容器到一个文件,无论此时这个容器是否处于运行状态,能够使用docker export命令
[root@node1 docker]# docker export cec2eea2f8b6 > test1.tar
docker export (容器的id) > 文件.tar
能够讲这些文件传输到其余机器上,在其余机器上经过导入命令实现容器的迁移。
导入容器
导出的文件能够使用 docker import 命令导入,成为镜像
[root@node1 docker]# cat test1.tar | docker import - test/centos:v1
Docker import -(空格) 名字
[root@node1 docker]# docker p_w_picpaths