1.1 docker run -d -p 8080:80 --name web_server nginx
命令的详细解读
-
docker run
: 这是 Docker 的一个基本命令,用于从指定的镜像启动一个新的容器。 -
-d
: 这个参数是--detach
的简写,意味着容器将在后台运行。也就是说,命令会立即返回,并且容器会在后台作为一个独立的进程运行。 -
-p 8080:80
: 这个参数用于端口映射。它将容器内部的 80 端口映射到宿主机的 8080 端口上。这意味着,当你访问宿主机的 8080 端口时,实际上是在访问容器内部的 80 端口。这对于暴露 Web 服务非常有用,因为你可以通过宿主机的 IP 地址和端口号来访问运行在容器内的 Web 应用。 -
--name web_server
: 这个参数用于为容器指定一个名称,这里的名称是web_server
。通过指定名称,你可以更方便地引用和管理容器,而不是使用容器的 ID。 -
nginx
: 这是要运行的镜像名称。在这个例子中,Docker 会从 Docker Hub(或你配置的其他镜像仓库)拉取nginx
镜像(如果本地没有的话),并使用这个镜像来启动一个新的容器。
综上所述,这条命令的作用是在后台启动一个名为 web_server
的容器,该容器运行 nginx
镜像,并将容器内部的 80 端口映射到宿主机的 8080 端口上。这样,你就可以通过访问宿主机的 http://<宿主机IP>:8080
来访问运行在容器内的 nginx 服务了。
1.2 docker run -d --name ubuntu_container ubuntu
命令的详细解读
-
docker run
: 这是 Docker 的核心命令之一,用于从指定的镜像启动一个新的容器实例。 -
-d
: 这是--detach
的简写形式,意味着容器将在后台运行,即作为守护进程运行。当你执行这个命令时,它不会阻塞你的终端,而是立即返回,让你能够继续在同一个终端中执行其他命令。容器会在后台运行,直到你手动停止它或它因为某种原因(如崩溃或达到重启策略的限制)而停止。 -
--name ubuntu_container
: 这个参数用于为即将启动的容器指定一个名称。在这个例子中,容器的名称被设置为ubuntu_container
。指定容器名称的好处是,你可以通过名称而不是容器 ID 来引用和管理容器,这在处理多个容器时特别有用。 -
ubuntu
: 这是要从中创建容器的 Docker 镜像的名称。在这个例子中,Docker 会从 Docker Hub(或你配置的其他镜像仓库)上拉取ubuntu
镜像(如果本地没有的话),并使用这个镜像来启动一个新的容器。ubuntu
镜像通常包含了一个基本的 Ubuntu 操作系统环境。
综上所述,这条命令的作用是在后台启动一个名为 ubuntu_container
的容器,该容器运行 ubuntu
镜像。容器启动后,你可以在后台运行各种命令和应用程序,但由于没有指定要运行的特定命令(如 -it
参数和 /bin/bash
),容器可能会立即进入“已退出”状态,因为它没有要执行的前台进程。如果你希望容器保持运行状态,你需要在 docker run
命令的末尾指定一个前台进程,比如 /bin/bash
(用于交互式 shell)或任何你想要容器持续运行的服务。但在这个例子中,由于使用了 -d
参数,即使没有前台进程,容器也会在后台启动。如果你想要检查容器的状态或与之交互,你可以使用 docker ps
来列出所有正在运行的容器,或使用 docker exec
来在已运行的容器中执行命令。
1.3 docker run -it --name ubuntu_bash ubuntu /bin/bash
命令的详细解读
-
docker run
: 这是 Docker 的一个基本命令,用于从指定的镜像启动一个新的容器实例。 -
-i
,--interactive
: 这个参数保持容器的标准输入(STDIN)开放。即使没有附加到容器,也可以通过这种方式与容器进行交互。这在你想要与运行在容器内的程序进行交互时非常有用。 -
-t
,--tty
: 这个参数分配一个伪终端(pseudo-TTY)或终端。这通常与-i
参数一起使用,以提供一个交互式 shell。当你想要以命令行界面与容器交互时,这是必需的。 -
--name ubuntu_bash
: 这个参数为即将启动的容器指定了一个名称,即ubuntu_bash
。通过指定名称,你可以更容易地引用和管理容器,而不是使用容器的唯一标识符(ID)。 -
ubuntu
: 这是要从中创建容器的 Docker 镜像的名称。Docker 会从 Docker Hub(或你配置的其他镜像仓库)上拉取这个镜像(如果本地没有的话),并使用它来启动一个新的容器。 -
/bin/bash
: 这是容器启动后要运行的命令。在这个例子中,它启动了一个 Bash shell。由于使用了-it
参数,这个 shell 会是交互式的,并且你会被带到容器的命令行界面中。
综上所述,这条命令的作用是以交互模式启动一个名为 ubuntu_bash
的容器,该容器运行 ubuntu
镜像,并在容器内启动一个 Bash shell。一旦命令执行,你就会看到一个 Bash 提示符,可以在其中运行命令,就像在一个真实的 Ubuntu 环境中一样。这个环境是隔离的,意味着你在容器内所做的任何更改都不会影响你的宿主机系统。当你完成工作后,可以通过输入 exit
命令来退出 Bash shell,并停止容器(除非你在后台启动了其他进程)。
1.4 docker run -d -e MY_VAR=myvalue --name env_example ubuntu
命令的详细解读
-
docker run
: 这是 Docker 的一个基本命令,用于从指定的镜像启动一个新的容器实例。 -
-d
,--detach
: 这个参数告诉 Docker 在后台运行容器,并打印容器 ID。这意味着容器会在后台运行,你不会直接看到容器的输出或提示符。 -
-e
,--env
: 这个参数用于设置环境变量。在这个例子中,MY_VAR=myvalue
设置了一个名为MY_VAR
的环境变量,其值为myvalue
。环境变量可以在容器内运行的程序中使用。 -
--name env_example
: 这个参数为即将启动的容器指定了一个名称,即env