Docker容器
查看已有容器
列出运行中的容器
docker ps
列出所有容器
docker ps -a
启动
新建并启动
我们可以用一下命令新建并启动容器
docker run [选项] <镜像名>
#例如:
docker run -it ubuntu /bin/bash
-i
是以交互模式操作,-t
终端,二者可以合起来用-it
,若要退出输入exit
即可。
当利用 docker run
来创建容器时,Docker 在后台运行的标准操作包括:
-
检查本地是否存在指定的镜像,不存在就从公有仓库下载
-
利用镜像创建并启动一个容器
-
分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
-
从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
-
从地址池配置一个 ip 地址给容器
-
执行用户指定的应用程序
-
执行完毕后容器被终止
启动已终止的容器
docker start <容器>
其中,<容器>
可以是容器名
、容器长ID
、容器短ID
后台运行
docker run -d <镜像名>
-d
后台运行
(注意:即使没有-d
,容器也是会长久运行的,区别只在于是否会将容器内的输出信息显示在当前终端内)
获取容器内输出信息
docker logs <容器>
终止
docker stop <容器>
进入容器
docker attach <容器名>
注意:在这个命令进入容器内,在stdin中exit会使容器停止。
docker exec -it 容器名 bash
注意:在docker exec
下进入容器,在stdin中exit不会导致容器停止。
迁移
导出容器
docker export <容器> > <文件名>.tar
导入
docker import <文件名>.tar [用户名/]<软件名>[:标签]
我们也可以使用docker load
来导入镜像存储文件到本地镜像库,也可以使用docker import
来导入一个容器快照到本地镜像库。二者的区别仅在于容器快照会丢掉所有历史记录和元数据信息(标签等信息),可以在导入时重新定义,如上面的指令一样。而镜像存储文件会保存完整记录,所以体积也要大。
删除容器
删除一个处于终止状态的容器:
docker rm <容器>