1
新建并启动
$ sudo docker run -t -i ubuntu:14.04 /bin/bash
-t 让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
-i 则让容器的标准输入保持打开
在交互模式下,用户可以通过所创建的终端来输入命令
更多的时候,需要让 Docker 容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加 -d 参数来实现。
$ sudo docker run -idt ubuntu /bin/bash
启动之后的提示符中包含新容器的id
可以通过`docker start container-id`来启动已经停止的容器
2 查看容器实例列表
$ sudo docker ps
$ sudo docker ps -a
3 终止容器
$ docker stop container-id
删除容器
$ docker rm container-id
4 链接运行中的容器实例
$ docker attach container-id
或
$ nsenter --target $PID --mount --uts --ipc --net --pid
注:PID=$(docker inspect --format "{{ .State.Pid }}" <container>)
或
$ docker-enter container-id
5 导出导入容器
docker export 导出容器
$ sudo docker ps -a
CONTAINER ID IMAGE ***
7691a814370e ubuntu:14.04 ***
$ sudo docker export 7691a814370e > ubuntu.tar
这样将导出容器快照到本地文件
docker import 导入容器快照到镜像库
$ cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
test/ubuntu v1.0 9d37a6082e97 About a minute ago 171.3 MB
此外,也可以通过指定 URL 或者某个目录来导入,例如
$sudo docker import http://example.com/exampleimage.tgz example/imagerepo
*注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。
这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),
而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。