使用docker-desktop安装AlmaLinux8教 程
前提:已经在 windows 中安装好 docker-desktop 软件。
1.新建 entrypoint
脚本
使用 git bash
随机进入一个 windows 下的目录,创建一个新的目录:
mkdir alma-docker
然后进入这个目录 cd alma-docker
,新建 entrypoint.sh
文件:
#!/bin/bash
set -e
# 如果 /etc/ssh 下的 host keys 不存在则生成
if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then
echo "Generating SSH host keys..."
ssh-keygen -A
fi
exec /usr/sbin/sshd -D
确保保存后给这个脚本增加执行权限(在 Windows 上可以在 Git Bash 或 WSL 下执行 chmod +x entrypoint.sh
)。
2.编写 Dockerfile
创建一个名为 Dockerfile
的文件,内容如下:
# 基于 AlmaLinux 8 官方基础镜像
FROM almalinux:8
# 更新系统并安装 openssh-server、vim、net-tools、iproute、bash-completion 及 passwd 工具
RUN dnf update -y && \
dnf install -y openssh-server vim net-tools iproute bash-completion passwd && \
dnf clean all
# 设置 root 密码(请将 123456 替换为你自己的密码)
RUN echo "root:123456" | chpasswd
# 创建 sshd 运行所需目录
RUN mkdir -p /var/run/sshd
# 复制 entrypoint 脚本到容器内,并赋予执行权限
COPY ./entrypoint.sh /entrypoint.sh
# Dockerfile 中添加一行命令来移除 CR 字符
RUN sed -i 's/\r$//' /entrypoint.sh
RUN chmod +x /entrypoint.sh
# 暴露 SSH 端口
EXPOSE 22
# 使用 entrypoint 脚本启动容器
ENTRYPOINT ["/entrypoint.sh"]
3.编写 docker-compose.yml
文件
使用下面的 docker-compose.yml
文件来构建并运行容器,容器名指定为 alma-docker
,端口映射为宿主机 2222 对应容器 22 端口,并指定 alma-docker 主机名。
version: "3"
services:
alma:
build: .
image: alma-docker
container_name: alma-docker
hostname: alma-docker
ports:
- "2222:22"
privileged: true
4.构建并启动
在包含 Dockerfile、entrypoint.sh 和 docker-compose.yml 的目录下,执行:
docker-compose up -d --build
这样,Docker Compose 会重新构建镜像,并在启动时通过 entrypoint 脚本生成 host keys,然后启动 sshd 服务。
5.用 Xshell 登录
- 主机:宿主机的 IP 地址(localhost 也行)
- 端口:2222
- 用户名:root
- 密码:123456