1. 编写Dockerfile
基于基础镜像编写Dockerfile:
# 使用基础镜像
FROM redhat-python-java:v0.1
# 安装 epel-release 和更新系统
RUN yum update -y
ENTRYPOINT ["/bin/bash"]
# 设置 JAVA_HOME 和将 Java 添加到 PATH
ENV JAVA_HOME /opt/jdk1.8.0_381
ENV PATH $PATH:$JAVA_HOME/bin
# 安装 SSH 服务器
RUN yum install -y openssh-server
# 设置登录用户名和密码
RUN useradd -m -d /home/username -s /bin/bash username && \
echo "username:password" | chpasswd
# 启动 SSH 服务
CMD ["/usr/sbin/sshd", "-D"]
ADD ./conf/ /conf/
RUN pip install -r /conf/requirements.txt
# 启动SSH服务
RUN systemctl enable sshd
# 暴露SSH端口
EXPOSE 22
# 启动命令
CMD ["/usr/sbin/init"]
2. 创建镜像
docker build --no-cache -t images_name:V1.0 .
3. 创建容器
docker run -it -p 8022:22 -d --name container_name --privileged=true images_name:V1.0 /usr/sbin/init
4. 添加用户
进入容器:
docker exec -it container_name bash
修改配置文件:
vi /etc/ssh/sshd_config
找到以下行并确保其没有注释(去掉前面的#符号):
PermitRootLogin yes
PasswordAuthentication yes
然后在文件末尾添加以下行,以允许普通用户使用SSH登录:
AllowUsers username
ESC
输入:wq
保存并关闭文件。
重启SSH服务:
systemctl restart sshd
5. 设置java环境变量
不在镜像中添加环境变量的话,也可在临时容器中设置:
vi /etc/environment
添加以下内容
JAVA_HOME=/opt/jdk1.8.0_381
PATH=$PATH:$JAVA_HOME/bin
6. 设置用户权限
打开 sudoers 文件进行编辑:
visudo
在 sudoers 文件中,找到以下行(通常在文件的末尾):
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
允许用户 NMC_ECOMS 执行 sudo 命令:
NMC_ECOMS ALL=(ALL) ALL