alt

Docker入门与实践:操作容器方法详细介绍

Docker容器作为Docker的核心概念之一,是独立运行的一个/一组应用及其运行状态的环境。本文将介绍如何管理一个Docker容器,包括创建、启动和停止操作等内容。

在学习Docker容器具体操作之前,我们要具有这样的意识:由于Docker容器的轻量级特性,使用容器的通常方法是随时删除和新建容器。

一、Docker容器的启动方法

新建并启动Docker容器的命令为docker run

比如,本地具有ubuntu:16.04Docker镜像(如果没有,可以使用docker pull ubuntu:16.04下载docker镜像)。

alt

1.1 启动Docker容器执行任务后并退出

比如,我们可以在本地通过ubuntu:16.04容器的bash终端输出Hello, Xiaoliang!并终止容器:

docker run ubuntu:16.04 /bin/echo `Hello, Xiaoliang!`
alt

1.2 以交互方式启动Docker容器执行任务

通过如下指令,我们可以实现以交互的形式实现通过ubuntu容器的终端输出内容:

docker run -t -i ubuntu:16.04 /bin/bash

其中,-t表示为Docker容器分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上;-i表示容器的标准输入保持打开状态。此时,我们能够以交互的模式在docker容器终端输入命令进行相应操作。

alt

注意:终止容器的方式为在docker容器终端输入exitCtrl+d即可。

说明:当执行docker run命令创建容器时,docker后台执行了如下操作
(1)检测本地是否存在该镜像,如果不存在则从共有仓库上下载;
(2)通过本docker地镜像创建并启动一个docker容器;
(3)分配一个文件系统,并在只读的本地docker镜像层外部挂载一个可读写层;
(4)从宿主机配置的网桥接口中桥接一个虚拟接口到docker容器内;
(5)从地址池配置一个ip地址给docker容器;
(6)执行相应的应用程序,执行完不后终止容器。

二、Docker容器的后台运行、终止/删除、进入方法

2.1 Docker容器的后台运行方法

通常,我们使用docker容器的方式是让docker容器在后台运行,而不是直接将输出结果输出到宿主机。我们可以通过-d选项来实现docker容器的后台运行(也叫守护态运行)。

比如,我们要实现启动ubuntu16.04容器,并实现每1秒输出一个Hello World!。如果我们不是用-d选项,则会出现如下情况,每秒在宿主机终端输出一个Hello World!

alt

但是,如果我们使用后台运行,则会出现如下图所示的结果,需要注意输出的哈希值的前3位,它是后台运行docker容器的唯一Container id,通过这3位我们可以查看docker后台容器运行结果。此时,docker容器会在后台每秒输出一个Hello World!,而不会在宿主机的终端输出结果。但是我们可以通过docker logs命令查看输出结果。

alt

我们还可以通过docker container ls来查看运行的容器信息,如下图所示,运行了两个docker容器:

alt

2.2 Docker容器终止/删除方法

(1)容器的终止方法

终止容器的命令为:

docker container stop 容器ID的前几位

这里先介绍查看终止状态的容器命令为:

docker container ls -a

如下图所示,我这里有两个处于运行状态的容器和几个处于终止状态的容器:

alt
  • 注意:对于终止的容器,我们可以使用 docker container start 容器ID前几位来重新启动,这也是启动容器的另一种方法。

此时,我们可以使用如下命令,同时终止两个后台运行的容器:

docker container stop 8c1 36c

然后,使用docker container ls -a查看结果,运行的两个容器状态变为了Exited状态,即实现了容器的终止操作。

alt

(2)容器的删除方法

删除容器的命令为:

docker container rm [-f] 容器ID的前几位
  • 注意:如果一个容器处于运行状态,需要使用 -f选项来强制删除容器。

有的时候,我们想要删除所有处于会终止状态的容器,其命令如下所示:

docker container prune

2.3 Docker容器进入方法

在使用-d选项后台运行容器后,有时候需要进入容器进行相应操作,此时我们可以使用docker exec命令进入后台运行容器。

docker exec -i 容器ID前几位 bash
  • 需要注意的是,我们在以后台方式启动容器的时候,不仅要使用 -d选项,还要使用 -it为Docker容器分配一个伪终端并保持标准输入状态,即 -it配合使用时,则可以通过熟悉的Linux命令提示符操作容器。

如下图所示,给出一个例子:
(1)使用docker run -dit ubuntu:16.04命令以后台方式打开一个docker容器,并为Docker容器分配一个伪终端和保持标准输入状态;
(2)实际情况下有多个后台运行容器时,可以使用docker container ls -a查看所有容器的信息;
(3)使用docker exec -it 容器ID前几位 bash命令进入容器,并执行相应操作。

alt

可以通过输入exit退出容器,此操作并不停止容器。

本文由 mdnice 多平台发布

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐