Docker容器

203 阅读2分钟

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 <容器>

\