使用 Docker 实现 CentOS 外部登录 Dockerfile

Docker 是一个开源的容器化平台,可以帮助开发者轻松打包、分发和运行应用程序。在这篇文章中,我们将学习如何创建一个 CentOS Docker 镜像,并允许外部用户通过 SSH 进行登录。接下来的内容中,我们会逐步进行实现。

流程概述

以下是创建 CentOS 镜像并实现外部登录的步骤:

步骤 描述
1 创建 Dockerfile
2 构建 Docker 镜像
3 运行 Docker 容器
4 访问容器并进行外部登录

接下来,我们逐步详细了解每一步。

步骤 1: 创建 Dockerfile

首先,我们需要编写一个 Dockerfile。这是构建镜像的蓝图。我们将使用以下内容创建 Dockerfile:

# 使用 CentOS 作为基础镜像
FROM centos:latest

# 安装 OpenSSH 和 sudo
RUN yum -y install openssh-server sudo

# 创建 SSH 的运行目录
RUN mkdir /var/run/sshd

# 设置 root 用户的密码
RUN echo 'root:password' | chpasswd

# 允许 root 用户使用密码登录
RUN sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config

# 运行 SSH 服务
CMD ["/usr/sbin/sshd", "-D"]

步骤 2: 构建 Docker 镜像

在 Dockerfile 文件目录下,打开终端并运行以下命令来构建 Docker 镜像:

docker build -t centos-ssh .
  • docker build 是构建 Docker 镜像的命令。
  • -t centos-ssh 为镜像指定一个名字(标签)。
  • . 表示当前目录中的 Dockerfile。

步骤 3: 运行 Docker 容器

构建完成后,可以通过以下命令运行 Docker 容器:

docker run -d -p 2222:22 --name mycentos centos-ssh
  • docker run 是运行 Docker 容器的命令。
  • -d 让容器在后台运行。
  • -p 2222:22 将宿主机的端口 2222 映射到容器的 22 端口(SSH)。
  • --name mycentos 为容器指定一个名字。
  • centos-ssh 是我们构建的镜像名称。

步骤 4: 访问容器并进行外部登录

现在,我们可以通过 SSH 连接到运行的 Docker 容器中。使用以下命令进行连接(可以在不同的终端执行):

ssh root@localhost -p 2222
  • ssh 是 SSH 客户端。
  • root@localhost 指我们要连接的用户和主机。
  • -p 2222 指定连接的端口。

当提示输入密码时,输入在 Dockerfile 中设置的密码(如上示例为 password)。

结尾

至此,我们成功地创建了一个 CentOS Docker 镜像,并允许外部用户通过 SSH 进行登录。这个过程从编写 Dockerfile 到运行容器,再到通过 SSH 连接每一步都非常重要。官方下载文档和社区的资源也是极好的学习途径,鼓励你在实践中探索更多 Docker 的使用场景。希望这篇文章能在你学习 Docker 的旅程上有所帮助!