1、创建容器
1.1、新建容器
创建容器
docker create -it NAME:TAG
使用create 命令新建的容器处于停止状态,可以使用docker start 命令来启动它。
1.2、启动容器
docker start ContainerID
1.3、新建并启动容器
docker run NAME:TAG /bin/echo "Hello world"
run 等价于1.1 + 1.2 步骤。之后容器自动终止,status状态为Exited.
利用run来创建并启动容器时,Docker在后台运行的标准操作如下:
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载;
- 利用镜像创建一个容器,并启动该容器;
- 分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层;
- 从宿主主机配置的网桥接口中桥接一个虚拟接口道容器中;
- 从网桥的地址池配置一个IP地址给容器;
- 执行用户指定的应用程序;
- 执行完毕后容器被自动终止;
下面的命令启动一个bash终端,允许用户进行交互:
docker run -it NAME:TAG /bin/bash
1.4、守护态运行
docker run -d NAME
要获取容器的输出信息:
docker logs Container
2、终止容器
docker stop Container
3、进入容器
启动容器后如何跟容器交互呢,这里只介绍一种方法
docker exec -it ContainerID /bin/bash
通过指定 -it 参数来保持标准输入打开,并且分配一个伪终端。通过exec命令对容器执行操作时最为推荐的方式。使用docker exec --help 查看详细参数用法。
4、删除容器
docker rm Container
5、导入和导出容器
5.1、导出容器
导出容器是指导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态,可以使用docker export命令,该命令的格式为
docker export [-o | --output[=""]] CONTAINER
其中,可以通过-o 选项来指定导出的 tar 文件名,也可以直接通过重定向来实现。
export 命令只会保存容器当时状态,与 save 不同的是,export不会保存历史记录,因此包大小会比save要小。
docker export -o *.tar ContainerID
之后,可将导出的 tar 文件传输到其他机器上,然后再通过导入命令导入到系统中,从而实现容器的迁移。
5.2、导入容器
导出的文件可以使用 docker import 命令导入变成镜像,该命令格式为:
docker import [-c | --change[=[]]] [-m | --message[=MESSAGE]] file | URL | - [REPOSITORY[:TAG]]
与load 不同的是,import 可以指定镜像的名称与TAG。
docker import *.tar - test/NAME:TAG
总结
import、load 两者的区别在于容器快照文件(export)将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件(save)将保存完整记录,体积也更大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。