dockerfile创建nginx镜像

dockerfile创建nginx镜像

创建镜像

  • 创建nginx_ubuntu目录,创建Dockerfile文件和run.sh脚本
mkdir nginx_ubuntu
touch Dockerfile  run.sh
  • 编写Dockerfile
# 上一章讲到的sshd镜像
FROM sshd:dockerfile

MAINTAINER ricky from CSDN (735459024@qq.com)

RUN \
    apt-get update && \
    apt-get install tzdata && \
    apt-get install -y nginx && \
    rm -rf /var/lib/apt/lists/* && \
    echo "daemon off;" >> /etc/nginx/nginx.conf && \
    chown -R www-data:www-data /var/lib/nginx

RUN echo "Asia/Shanghai" > /etc/timezone && \
    dpkg-reconfigure -f noninteractive tzdata

ADD run.sh /run.sh
RUN chmod 755 /*.sh

# 定义可以被挂载的目录,分别是虚拟主机的挂载目录、证书目录、配置目录、日志目录
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx"]

# 定义工作目录
WORKDIR /etc/nginx

# 定义输出命令
CMD ["/run.sh"]

# 定义输出端口
EXPOSE 80
EXPOSE 443
  • 编写run.sh
#!/bin/bash
/usr/sbin/sshd &
/usr/sbin/nginx
  • 创建镜像
docker build -t nginx:stable  .

create_nginx_success

测试镜像

  • 启动docker容器
docker run -d -P nginx:stable
docker ps

run_nginx

  • 请求nginx
curl 127.0.0.1:32769

curl_nginx

  • 测试ssh
ssh 127.0.0.1 -p 32770

test_nginx_ssh

注: 之所以能够连上ssh服务,是因为在使用Dockerfile创建镜像时,会继承父镜像的开发端口,但不会继承启动命令

  • 保持镜像成tar包
docker save -o nginx_satble.tar nginx:stable

save_nginx_tar

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值