简单地说,容器是镜像的一个运行实例,所不同的是,它有额外的可写文件层。
如果认为虚拟机是模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。那么docker 容器就是地理运行的一个或一组应用,以及它们的必需运行环境。
1.1 创建docker 容器
新建容器 可以使用 docker create 命令新建一个容器,例如:
[[email protected] ~]# docker create -it centos:centos6 /bin/bash
*其中 -t 表示 进入终端 -i 表示容器的标准输入保持打开。
使用 docker create 命令新建的容器处于停止的状态,可以使用docker start 命令来启动它
Docker start (ID)
新建并启动容器
启动容器有二种方式,一种基于镜像新建一个容器并启动,另外一个是将在终止的状态的容器重新启动。所需要的命令主要为 docker run,等价于先执行 docker create命令 在执行 docker restart 命令
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参数来添加
[[email protected] ~]# docker run -d centos:centos6 /bin/bash -c "while true;do echo hello world;sleep 1; done"
要获取容器的输出信息,可以通过docker logs 命令
docker logs 容器id
终止容器
可以使用 docker stop 来终止一个运行中的容器,
[[email protected] ~]# docker stop d130a7e46842
处于终止状态的容器,可以通过docker start 命令来重新启动;
[[email protected] ~]# docker start d130a7e46842
还可以使用 docker restart 命令将一个运行态的容器终止,然后在重新启动它
[[email protected] ~]# docker restart d130a7e46842
进入容器
Docker 1.3版本起,提供了一个更加方便的工具exec,可以直接在容器内运行命令。
docker exec -ti d130a7e46842 /bin/bash
用exit 后 不关闭容器 而是在后台继续运行
删除容器
可以使用docker rm命令删除处于终止状态的容器,命令格式为 docker rm ,支持的选项包括
-f 强行终止并删除一个运行中的容器。
-l了删除容器的连接,但保留容器。
-v 删除容器挂载的数据卷、
[[email protected] ~]# docker rm d130a7e46842
如果要删除一个运行中的容器,可以添加-f参数
[[email protected] ~]# docker rm -f e41acf350912
导入和导出容器 (重点)
导出容器是指导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态,可以使用docker export命令
[[email protected] docker]# docker export cec2eea2f8b6 > test1.tar
docker export (容器的id) > 文件.tar
可以讲这些文件传输到其他机器上,在其他机器上通过导入命令实现容器的迁移。
导入容器
导出的文件可以使用 docker import 命令导入,成为镜像
[[email protected] docker]# cat test1.tar | docker import - test/centos:v1
Docker import -(空格) 名字
[[email protected] docker]# docker images