docker多容器创建和配置ssh对外服务
·
之前ssh不能随着容器启动而启动于是乎就写个start.sh脚本来帮助启用
首先创建一个start.sh脚本来打开ssh服务
#!/bin/bash
# 启动 SSH 服务
/etc/init.d/ssh start
# 让容器保持运行
tail -f /dev/null
其次创建Dockerfile
# 使用基础镜像
FROM ubuntu:22.04
# 安装 SSH 服务
RUN apt-get update && \
apt-get install -y openssh-server && \
rm -rf /var/lib/apt/lists/* && \
mkdir /var/run/sshd
# 设置一个简单的密码,你可以在实际应用中使用更安全的方式设置密码
RUN echo 'root:password' | chpasswd
# 允许 root 用户登录
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# 配置 SSH 服务的监听端口
EXPOSE 22
# 拷贝启动脚本
COPY start.sh /usr/local/bin/start.sh
RUN chmod +x /usr/local/bin/start.sh
# 设置入口点
ENTRYPOINT /usr/local/bin/start.sh
再创建一个名为generate_docker_compose.bash生成docker-compose.yml的脚本
#!/bin/bash
# 设置要创建的容器数量
container_count=10
# 创建docker-compose.yml文件头部
echo "version: '3'" > docker-compose.yml
echo "services:" >> docker-compose.yml
# 生成容器配置
for ((i=1; i<=$container_count; i++)); do
echo " my_container_$i:" >> docker-compose.yml
echo " build:" >> docker-compose.yml
echo " context: ." >> docker-compose.yml
echo " ports:" >> docker-compose.yml
echo " - \"$((2000 + $i)):22\"" >> docker-compose.yml
done
echo "Done. docker-compose.yml file has been generated."
上述几个脚本放在同一个目录下面,然后通过命令在当前目录下查找Dockerfile生成镜像custom_ubuntu_ssh,命令为:
docker build -t custom_ubuntu_ssh .
运行bash generate_docker_compose.bash脚本,然后docker-compose up -d来开启这些容器就好
更多推荐
所有评论(0)