一、启动容器
1、基于镜像新建一个容器并启动
可以使用docker run命令来新建并启动一个容器,例如:
docker run -t -i ubuntu:latest /bin/bash其中,
-t:让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
-i:让容器的标准输入保持打开
当利用docker run来创建容器时,Docker在后台运行的标准操作包括:
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载
- 利用镜像创建并启动一个容器
- 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
- 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中
- 从地址池配置一个ip地址给容器
- 执行用户指定的应用程序
- 执行完毕后容器被终止
2、将终止状态(stopped)的容器重新启动
可以使用docker start命令来重新启动容器,例如:
docker start <Container>二、守护态运行
可以通过添加-d参数来实现让Docker容器在后台以守护态(Daemonized)形式运行。
docker run -d ubuntu:latest /bin/sh -c "while true; do echo hello world; sleep 1; done"若要获取容器的输出信息,可以通过docker logs命令来获取
docker logs <Container>三、终止容器
可以使用docker stop命令来终止一个运行中的容器。此外,当Docker容器中指定的应用终结时,容器也自动终止。
docker stop <Container> 终止的容器可以使用docker ps -a命令查看。
使用docker restart命令会将一个运行中的容器终止,然后再重新运行
四、进行容器
当容器启动后进入后台后,可以使用docker attach命令或nsenter工具等进行容器进行操作。
1、使用docker attach命令进入容器
docker attach <Container>如果从这个stdin中exit,会导致容器停止。
2、使用nsenter命令进入容器
找到容器的第一个进程的PID
PID=$(docker inspect --format "{{ .State.Pid}}" <Container>)连接到容器
nsenter --target $PID --mount --uts --ipc --net --pid3、使用docker.exec命令进入容器
docker exec -i -t <Container> <Command>如果从这个stdin中exit,不会导致容器停止。
五、导出容器
可以使用docker export命令导出容器
docker export <Container> > ubuntu.tar六、导入容器快照
可以使用docker import从容器快照文件中导入为镜像
cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
docker import http://example.com/exampleimage.tgz example/imagerepo导入镜像有两种方式:
1、使用docker load命令导入镜像存储文件到本地镜像库
2、使用docker import命令导入容器快照到本地镜像库
二者的区别为:
容器快照:丢弃所有的历史记录和元数据信息(仅保存容器当时的快照状态)
镜像存储文件:保存完整记录,体积也要大
七、删除容器
可以使用docker rm命令来删除一个处于终止状态的容器
docker rm <Container> 也可以添加-f参数来删除一个正在运行的容器