通过Dockerfile创建nginx服务的Centos镜像
来源:互联网 发布:用java写自我介绍 编辑:程序博客网 时间:2024/06/04 18:18
通过Dockerfile生成镜像
在宿主机上准备的文件清单:
Dockerfile
#启动ssh和apache服务的角本
run.sh
以上文件都放到/root/nginx_centos目录下
mkdir -p /root/nginx_centos
cd /root/nginx_centos
一、准备run.sh文件
在/root/nginx_centos目录新建run.sh
vim run.sh
#!/bin/bash
/usr/sbin/sshd &
/usr/local/nginx/sbin/nginx
二、准备Dockerfile
在/root/nginx_centos目录新建Dockerfile
cat Dockerfile
#新生成的镜像是基于sshd:dockerfile镜像FROM sshd-centosMAINTAINER by cmzstevenWORKDIR /usr/local/src#安装wgetRUN yum install -y wget#下载并解压源码包RUN wget http://nginx.org/download/nginx-1.12.1.tar.gzRUN tar zxvf nginx-1.12.1.tar.gzWORKDIR nginx-1.12.1#编译安装nginxRUN yum -y install gcc gcc-c++ pcre-devel zlib-devel openssl*RUN useradd -M -u 40 -s /sbin/nologin nginxRUN ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module --with-http_realip_moduleRUN makeRUN make install#启动Nginx服务RUN ln -s /usr/local/nginx/sbin/* /usr/local/sbin/RUN /usr/local/nginx/sbin/nginx#修改Nginx配置文件,以非daemon方式启动RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf#复制服务启动脚本并设置权限ADD run.sh /usr/local/sbin/run.shRUN chmod 755 /usr/local/sbin/run.sh#设置生成容器时需要执行的脚本CMD ["/usr/local/sbin/run.sh"]#开放22、80、443端口EXPOSE 22EXPOSE 80EXPOSE 443
需要注意的是:在Dockerfile文件中更换当前目录不可以用“cd”命令,而要改用“WORKDIR”.
三、根据Dockerfile生成镜像
docker build -t nginx_dockerfile:centos .
查看镜像:
ocker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx_dockerfile centos 28d333149027 6 minutes ago 692MB
nginx centos bb2863c49d58 2 hours ago 586MB
sshd-centos latest 0742cfe06535 3 hours ago 328MB
centos latest 36540f359ca3 3 weeks ago 193MB
四、根据镜像生成的容器并进行测试
1、生成新的容器
docker run -d -p 2224:22 -p 8001:80 -p 4443:443 nginx_dockerfile:centos /usr/local/sbin/run.sh
将容器的22端口、80端口和443端口分别映射到到宿主机上的2224端口、8001端口和4443端口,并运行服务脚本。
2、测试
- 通过Dockerfile创建nginx服务的Centos镜像
- 通过Dockerfile创建支持SSH服务的CentOS镜像
- 通过Dockerfile创建支持SSH服务的CentOS镜像
- 通过Dockerfile创建支持SSH服务的CentOS镜像
- 通过Dockerfile创建SSH服务的CentOS镜像
- 通过Dockerfile创建Mysql服务的Centos镜像
- 【Dockerfile】使用Dockerfile创建带nginx服务的Centos Docker镜像
- Docker实战:使用Dockerfile创建带nginx服务并支持ssh的Centos Docker镜像
- 通过Dockerfile创建JDK8的CentOS镜像
- 通过Dockerfile创建Tomcat的CentOS镜像
- 【Dockerfile】使用Dockerfile创建带Apache服务的Centos Docker镜像
- dockerfile创建nginx镜像
- 使用Dockerfile创建带Apache服务的Centos Docker镜像
- 使用Dockerfile创建支持sshd服务自启动的容器镜像(CentOS)
- Docker实战:使用Dockerfile创建带Apache服务并支持ssh的Centos Docker镜像
- Docker实战:使用Dockerfile创建带tomcat服务并支持ssh的Centos Docker镜像
- 创建带Nginx服务的Centos Docker镜像
- Dockerfile 示例二:创建一个Nginx的镜像
- esp和ebp详解
- 移动架构35_数据库架构:数据库升级及分库实现多用户登陆
- android 改变输入法enter键文字 为搜索 下一个 以及前往
- 求解最大公约数的两种算法
- linux日常
- 通过Dockerfile创建nginx服务的Centos镜像
- java虚拟机(四)--垃圾回收算法与垃圾收集器
- reportico工具和Yii整合,并解决Projects area does not exist
- Android 硬解码 MediaCodec 遇到的(部分手机绿屏)API21
- Leetcode88 MergeSortedArray
- linux 编译链接
- Android 获取视频(本地、网络)的第一关键帧
- 炉石传说卡
- 常见的亮灭屏流程分析