Fork me on GitHub

一起学 Docker(四)-- 容器的常用操作

1.创建容器

Docker 的容器十分轻量级,用户可以随时创建或删除容器。

新建容器:docker create

Example:docker create –ti ubuntu

说明:使用 docker create 命令创建的容器处于停止状态,可以使用 docker start 命令启动它。

新增加了一个 name 等于 test_create 的,status 等于 create

新建并启动容器:docker run

Example: docker run ubuntu/bin/echo “Hello World”

说明: 等价于先执行 docker create 命令,再执行 docker start 命令。

docker run 背后的故事:

1 检查本地是否存在制定的镜像,不存在就从公有仓库下载。

2 利用本地镜像创建并启动一个容器。

3 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。

4 从宿主机配置的网桥接口桥接一个虚拟接口到容器中去。

5 从地址池配置一个 IP 地址给容器。

6 执行用户的指定的用户程序。

7 执行完毕后容器被终止。

一条简单的命令:

docker run -i –t ubuntu/bin/bash

-t : 让 docker 分配一个伪终端并绑定到容器的标准输入上。

-i : 让容器的标准输入保持打开。

在交互模式下,用户可以通过所创建的终端来输入命令,exit 命令退出容器。

退出后,容器自动处于终止状态。

4 秒前容器被退出了。

守护台运行:

更多的时候,需要让 Docker 容器运行在后台以守护态(daemonized)形式运行。用户可以通过添加 -d 参数来实现。

Example:

docker run –d ubuntu/bin/sh -c “while true;do echo hello world;sleep 1;done”

补充:

查看日志: docker logs<container_id>

docker logs –f <container_id> 动态的查看日志,类似咱们查看 tomcat 的日志一样

2.终止容器

可以使用 docker stop 命令来终止一个运行中的容器。

docker stop<container_id>

注意:

当容器中的应用终结时,容器也会自动停止。

查看终止的容器:docker ps -a

查看运行的容器:docker ps

重新启动容器:docker start<container_id>

3.进入容器

在使用 -d 参数时,容器启动后会进入后台,用户无法看到容器中的信息。

docker exec <options><container_id> <command>

Exec 可以直接在容器内部运行命令。

进入容器:

docker exec -i –t<container_id> bash

run 运行一个容器后,进入容器的话,exit 容器直接退出

exec 进入容器后,exit 容器不退出,仍在后台运行

4.删除容器

可以使用 docker rm 命令删除终止状态的容器。

如果删除正在运行的容器,需要停止容器在进行删除

不管容器是否运行,可以使用 docker rm–f 命令进行删除。

5.导入和导出容器

导出容器是指导出一个已经创建的容器到一个文件,不管容器是否处于运行状态。可以使用 docker export 命令。

docker export<container_id>

Example:

Docker export test_id >test.tar

导出的文件又可以使用 docker import 命令导入,成为镜像。

Example:

cat export.tar | docker import - liming/testimport:latest

导入容器生成镜像,通过镜像生成容器,查看容器里面的内容

如何获得容器 ID?

有几种方法可以做到这一点。手动方法是列出所有正在运行的容器,并在列表中找到您要查找的容器。只需从那里复制其 ID。

更自动化的方法是使用 shell 脚本和环境变量。例如,如果要获取引号容器的 ID,这是一个示例:

$ export CONTAINER_ID = $(docker container ls | grep quotes | awk '{print $1}')

这里我们使用 AWK 获取第一个字段,即容器 ID,注意这里取的是正在运行的容器的 ID。现在,您可以在表达式中使用 $CONTAINER_ID 变量,而不是使用容器名称:

$ docker container stop $CONTAINER_ID

一旦停止容器后,其状态将更改为“已退出”。

你可以使用 docker container start 命令重新启动已停止的容器。

赞赏是最好的支持与鼓励!
-------------本文结束感谢您的阅读-------------