手工制作docker镜像-包含多个服务ssh+nginx例子解析

在这里插入图片描述

代码示例:

要创建一个包含SSH和Nginx服务的Docker镜像,你可以参考以下步骤:

  1. 创建Dockerfile:首先,你需要创建一个Dockerfile来定义你的镜像。以下是一个基于CentOS的Dockerfile示例,它安装了SSH和Nginx服务:
# 新生成的镜像是基于sshd:dockerfile镜像
FROM sshd:dockerfile
MAINTAINER by your_name

# 安装wget
RUN yum install -y wget

# 下载并解压源码包
RUN wget http://nginx.org/download/nginx-1.8.0.tar.gz
RUN tar -zxvf nginx-1.8.0.tar.gz

# 编译安装nginx
WORKDIR nginx-1.8.0
RUN yum install -y gcc make pcre-devel zlib-devel
RUN ./configure --prefix=/usr/local/nginx --with-pcre
RUN make
RUN make install

# 修改Nginx配置文件,以非daemon方式启动
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf

# 复制服务启动脚本并设置权限
ADD run.sh /usr/local/sbin/run.sh
RUN chmod 755 /usr/local/sbin/run.sh

# 设置生成容器时需要执行的脚本
CMD ["/usr/local/sbin/run.sh"]

# 开放22、80、443端口
EXPOSE 22
EXPOSE 80
EXPOSE 443
  1. 创建启动脚本:你需要一个脚本来启动SSH和Nginx服务。创建一个名为run.sh的文件,内容如下:
#!/bin/bash
/usr/sbin/sshd &
/usr/local/nginx/sbin/nginx
  1. 构建镜像:在包含Dockerfile和run.sh的目录下,运行以下命令来构建你的镜像:
docker build -t your_image_name:tag .
  1. 运行容器:使用以下命令来启动你的容器,并将必要的端口映射到宿主机:
docker run -d -p 2224:22 -p 8001:80 -p 4443:443 --name your_container_name your_image_name:tag

这样,你就创建了一个包含SSH和Nginx服务的Docker镜像,并成功运行了一个容器。你可以通过访问宿主机的2224端口来使用SSH服务,通过8001端口来访问Nginx服务。

喜欢本文,请点赞、收藏和关注!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔丹搞IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值