创建一个包含 JDK
、SSH
、和 Vim
的基础 Docker
镜像涉及几个步骤。以下是详细操作步骤:
1、准备工作
- 确保你已经安装了
Docker
,并且能够在命令行中使用Docker
。 - 创建一个新目录,用于存放
Dockerfile
和其他相关文件。
mkdir -p /opt/image
2. 创建 Dockerfile
在创建的目录中,新建一个名为 Dockerfile
的文件,此文件将包含用于构建镜像的指令。
第一步,进入创建的目录中:
cd /opt/image
第二步,新建Dockerfile 文件
vi Dockerfile
3. 编写 Dockerfile
在 Dockerfile 中添加以下内容:
root:password
: password
为当前镜像密码,可修改;如:root:123456
# 使用基础镜像,可以选择Debian或者Ubuntu
FROM ubuntu:20.04
# 设置环境变量
ENV DEBIAN_FRONTEND=noninteractive
# 更新包列表并安装必要的软件
RUN apt-get update && \
apt-get install -y \
openjdk-11-jdk \
openssh-server \
vim \
&& apt-get clean
# 设置 SSH 服务
RUN mkdir /var/run/sshd
RUN echo 'root:password' | chpasswd # 设置root用户密码
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config
# 安装JDK
ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
ENV PATH $JAVA_HOME/bin:$PATH
# SSH 端口暴露
EXPOSE 22
# 设置默认命令来运行SSH服务
CMD ["/usr/sbin/sshd", "-D"]
4. 构建镜像
在 Dockerfile
所在目录,使用以下命令来构建镜像:
docker build -t my_base_image .
注:
my_base_image
是镜像的名字,你可以根据需要修改。
5. 运行容器
使用刚创建的镜像运行一个新的容器,并映射 SSH
端口:
docker run -d -p 2222:22 --name my_container my_base_image
注: -p 2222:22 将主机的 2222 端口映射到容器的 22 端口,my_container 是容器的名字。
6. 测试 SSH 连接
通过以下命令来测试 SSH 连接:
使用密码 password
登录(可以在 Dockerfile
中更改 )。
ssh root@localhost -p 2222
访问不通时请先排查:防火墙、是否配置安全策略等
7. 检查 JDK 和 Vim
java -version
vim --version