使用Docker Run命令启动Docker容器

时间:2020-07-27 12:58:51  来源:igfitidea点击:

在Linux系统上安装并运行Docker服务后,下一步是启动运行Docker容器。
在下面的教程中,我们将学习如何使用Docker Run命令创建Docker引擎上的新容器。

  • 从镜像创建一个新的Docker容器。
  • 容器名称。
  • 运行docker容器在背景中。
  • 将伪终端分配给容器。
  • 端口映射。
  • 链接容器。
  • 从主机安装音量。
  • 命令选项。

Docker Run命令从镜像创建新的Docker容器。
Docker运行的语法如下:

docker run [OPTIONS] IMAGE [COMMAND]

唯一必需的命令参数是Docker镜像 IMAGE。
要启动新的Docker容器,我们需要一个Docker镜像,如果镜像不存在,Docker将从Docker Hub下载镜像,然后创建并启动新容器。

示例:从镜像创建一个新的Docker容器

以下命令将启动一个来自Ubuntu:16.04镜像的“Ubuntu-Server”的新Ubuntu容器。

docker run -d -t --name ubuntu-server ubuntu:16.04
  • -d - 在后台运行容器。
  • -t - 分配伪tty。

使用docker exec命令将shell会话与容器中的shell会话:

docker exec -it ubuntu-server bash

列出运行的运行容器与Docker PS:

docker ps

要列出所有容器,请键入:

docker ps -a

容器名称

可以通过容器ID或者名称识别Docker容器。
默认情况下,docker守护程序如果未指定名称,则将随机名称分配给容器。
我们可以使用--name选项为容器分配名称。

docker run --name some-name image

运行docker容器在背景中

Docker容器可以在分离模式(背景)或者前景模式下启动。

默认模式是将容器在前台启动的前景模式,并使用当前控制台进程的标准输入,输出和标准错误。

要在后台运行容器,请使用-d选项。

docker run -d --name some-redis redis

使用-d选项容器将从背景中启动并继续在后台运行。

将伪终端分配给容器

某些容器需要在容器开始使用Docker Run命令时分配伪终端。
这是使用-t选项完成的。

docker run -d -t --name ubuntu-server ubuntu:16.04

请注意,并非所有容器都需要从-t选项开始。
如果我们在Docker容器上运行像Ubuntu或者Fedora这样的操作系统,我们需要使用-t选项。

在启动容器时暴露端口

我们需要创建端口映射以将容器的内部端口暴露到外部。
使用-p选项,我们将容器的内部端口映射到主机上的端口。

docker run -d -p host_port:container_port image

在以下示例中,我们创建一个带有主机端口80映射到容器端口80的新Apache Httpd容器。

docker run -d -p 80:80 --name apache-web httpd:latest

使用与另一个容器的链接创建新容器

当我们开始一个新的容器时,我们可以将另一个容器与--link标志链接到新容器。

在以下示例中,首先我们创建一个MySQL容器:

docker run -d --name my_server -e MYSQL_ROOT_PASSWORD=123456  mysql:5.7

接下来,我们将使用与MySQL容器的链接创建HTTPD容器:

docker run -d -p 80:80 --name apache --link my_server:mysql httpd:latest

Apache容器现在可以访问MySQL实例中的数据库。
在Apache实例中,MySQL主机应为MySQL容器的名称或者ID。

mysql -p -h my_server

从主机安装卷

使用-v选项,我们可以将主机上的目录和文件安装到容器上。

docker run -v host_dir:/container_dir image:tag

在以下示例中,我们开始一个新的Apache容器,内容将从主机上的/var/www/html目录中提供服务。

docker run -d -p 80:80 -v /var/www:/var/www httpd:latest

Docker运行命令选项

-d在后台运行容器。
-t分配一个伪TTY。
-e在容器内设置环境变量。
-h设置docker容器的主机名。
--link=[]添加到另一个容器的链接。
-m, --memory=""限制容器的可用内存,单位可以是b、k、m或者g。如果指定限制为0(不使用-m),则容器的内存不受限制。
--mac-address=""设置容器MAC地址(例如92:d0:c6:0a:29:33)。
--name=""为容器指定一个名称。如果未指定,docker将为docker容器分配一些随机名称。
-p将容器的端口或者端口范围发布到主机。
-P将所有公开的端口发布到主机接口上的随机端口。默认值为false。
--rm退出时自动移除容器。