基于centos7制作镜像之dockerfile的写法

1.nginx镜像制作

# (1)创建镜像制作目录并进入
mkdir /home/images/nginx
cd /home/images/nginx
# (2)将需要的index.html文件与安装包nginx-1.18.0.tar.gz上传至镜像制作目录下
[root@web2 nginx3]# ls
index.html  nginx-1.18.0.tar.gz
# (3)编辑Dockerfile文件
vim Dockerfile
# (4)内容
# 基础镜像
FROM centos7_8_2003:v1
# 作者信息
MAINTAINER fuyonghai<1294039385@qq.com>
RUN yum install -y wget
# 替换yum源
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
RUN wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
# 下载依赖
RUN yum -y install pcre pcre-devel  openssl openssl-devel gcc  gcc-c++ make zlib zlib-devel libtool
# 创建安装文件夹
RUN mkdir /opt/my_tools/
# 将安装压缩包复制解压到安装文件夹下面
ADD nginx-1.18.0.tar.gz /opt/my_tools/ 
# 执行编译安装
RUN cd /opt/my_tools/nginx-1.18.0 &&  ./configure --user=nginx --group=nginx  --prefix=/opt/nginx118 --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio && make && make install
# 创建用户nginx
RUN  useradd -s /bin/nologin -M nginx 
# 使得程序在镜像启动时前台运行
RUN echo "daemon off;" >> /opt/nginx118/conf/nginx.conf
# 复制需要访问文件至html下
COPY index.html /opt/nginx118/html/
# 设置容器端口,必须与配置文件里的配置端口与一致
EXPOSE 80
# 容器启动时执行容器内部nginx启动命令
CMD /opt/nginx118/sbin/nginx

# (5)构建镜像命令(注意后边的“.”)
docker build -t fyh-centos7-nginx:v1.0 .
# (6)镜像构建过程
[root@web2 nginx3]# docker build -t fyh-centos7-nginx:v1.0 .
Sending build context to Docker daemon  1.044MB
Step 1/14 : FROM centos7_8_2003:v1
 ---> afb6fca791e0
Step 2/14 : MAINTAINER fuyonghai<1294039385@qq.com>
 ---> Using cache
 ---> be8ffc888c0d
Step 3/14 : RUN yum install -y wget
 ---> Using cache
 ---> e40ee669fc1d
Step 4/14 : RUN wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
 ---> Using cache
 ---> 355616391396
Step 5/14 : RUN wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
 ---> Using cache
 ---> b0b528feae1e
Step 6/14 : RUN yum -y install pcre pcre-devel  openssl openssl-devel gcc  gcc-c++ make zlib zlib-devel libtool
 ---> Using cache
 ---> 6c171b448953
Step 7/14 : RUN mkdir /opt/my_tools/
 ---> Using cache
 ---> 39ed1213407d
Step 8/14 : ADD nginx-1.18.0.tar.gz /opt/my_tools/
 ---> Using cache
 ---> eb0185c63de0
Step 9/14 : RUN cd /opt/my_tools/nginx-1.18.0 &&  ./configure --user=nginx --group=nginx  --prefix=/opt/nginx118 --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio && make && make install
 ---> Using cache
 ---> 15c9a808f99c
Step 10/14 : RUN  useradd -s /bin/nologin -M nginx
 ---> Using cache
 ---> 445640ca5678
Step 11/14 : RUN echo "daemon off;" >> /opt/nginx118/conf/nginx.conf
 ---> Using cache
 ---> 6ee1665896f3
Step 12/14 : COPY index.html /opt/nginx118/html/
 ---> Using cache
 ---> a58328d65f53
Step 13/14 : EXPOSE 80
 ---> Using cache
 ---> d17cf48fc72a
Step 14/14 : CMD /opt/nginx118/sbin/nginx
 ---> Using cache
 ---> 9d10031f2422
Successfully built 9d10031f2422
Successfully tagged fyh-centos7-nginx:v1.0

# (7)构建结果
docker images
fyh-centos7-nginx                                                    v1.0                9d10031f2422        About an hour ago   897MB
# (8)启动测试
docker run --name mynginx -d -P fyh-centos7-nginx:v1.0
# (9)启动结果
[root@web2 nginx3]# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                   NAMES
84f6886cafb4        fyh-centos7-nginx:v1.0   "/bin/sh -c /opt/ngi…"   4 seconds ago       Up 3 seconds        0.0.0.0:32775->80/tcp   mynginx

(10)浏览器访问验证
ip:32775
在这里插入图片描述

2.activemq镜像制作

# (1)创建镜像制作目录
mkdir /home/images/activemq
# (2)上传apache-activemq-5.14.3-bin.gz 与 jdk-8u211-linux-x64.tar.gz安装包到镜像制作目录下
# (3)在镜像制作目录下编辑Dockerfile文件
vim Dockerfile
# (4)编写类容如下
FROM centos7_8_2003:v1
ADD apache-activemq-5.14.3-bin.gz /usr/local/
ADD jdk-8u211-linux-x64.tar.gz /usr/local/
RUN cd /usr/local && mv apache-activemq-5.14.3  activemq && mv jdk1.8.0_211 java
ENV JAVA_HOME=/usr/local/java
ENV PATH=$JAVA_HOME/bin:$PATH
ENV export JAVA_HOME PATH
RUN source /etc/profile
EXPOSE 61616 8161
CMD sh /usr/local/activemq/bin/activemq  start && /bin/bash
# (5)构建镜像(注意别忘记后边的“.”)
docker build -t centos7-activemq:v1.0 .
# (6)构建过程
[root@web2 activemq]# docker build -t centos7-activemq:v1.0 .
Sending build context to Docker daemon  249.3MB
Step 1/10 : FROM centos7_8_2003:v1
 ---> afb6fca791e0
Step 2/10 : ADD apache-activemq-5.14.3-bin.gz /usr/local/
 ---> Using cache
 ---> e06057ae2089
Step 3/10 : ADD jdk-8u211-linux-x64.tar.gz /usr/local/
 ---> Using cache
 ---> 537be4e2f353
Step 4/10 : RUN cd /usr/local && mv apache-activemq-5.14.3  activemq && mv jdk1.8.0_211 java
 ---> Using cache
 ---> b956da6d32e8
Step 5/10 : ENV JAVA_HOME=/usr/local/java
 ---> Using cache
 ---> bc83a472bf57
Step 6/10 : ENV PATH=$JAVA_HOME/bin:$PATH
 ---> Using cache
 ---> e62d645c3a2d
Step 7/10 : ENV export JAVA_HOME PATH
 ---> Using cache
 ---> b8aa8b37c81e
Step 8/10 : RUN source /etc/profile
 ---> Using cache
 ---> 8fd9bce21ee4
Step 9/10 : EXPOSE 61616 8161
 ---> Using cache
 ---> ddf12107d413
Step 10/10 : CMD sh /usr/local/activemq/bin/activemq  start && /bin/bash
 ---> Using cache
 ---> 2147e1a6c2c2
Successfully built 2147e1a6c2c2
Successfully tagged centos7-activemq:v1.0

# (7)构建结果
docker imgages
centos7-activemq                                                     v1.0                2147e1a6c2c2        6 days ago          1.14GB
# (8)启动镜像测试 -P 大写P 参数会自动将宿主机端口映射到容器
docker run --name mq_test -itd -P centos7-activemq:v1.0 bash
# (9) 查看启动的容器
[root@web2 activemq]# docker ps
CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS              PORTS                                               NAMES
b8cd33e0ee82        centos7-activemq:v1.0   "bash"              2 seconds ago       Up 2 seconds        0.0.0.0:32773->8161/tcp, 0.0.0.0:32772->61616/tcp   mq_test

(10)浏览器输入 ip:端口/admin 进行访问,账号/密码:admin/admin

3.redis镜像制作

# (1)创建镜像制作目录并进入
mkdir /home/images/redis
cd mkdir /home/images/redis
# (2)将已经配置好的redis.conf和安装包redis-6.2.5.tar.gz 上传至镜像制作目录
[root@web2 redis]# ls
redis-6.2.5.tar.gz  redis.conf
# (3)创建Dockerfile文件
vim Dockerfile
# (4)内容
FROM centos7_8_2003:v1
MAINTAINER fuyonghai<fuyonghai@qq.com>
RUN yum -y install wget gcc make libgcc gcc-c++ glibc-devel centos-release-scl scl-utils-build devtoolset-8-toolchain

RUN mkdir -p  /usr/local/service

ENV WORK_HOME=/usr/local/service  

ADD redis-6.2.5.tar.gz ${WORK_HOME}/

RUN mv ${WORK_HOME}/redis-6.2.5  ${WORK_HOME}/redis && cd ${WORK_HOME}/redis && make PREFIX=${WORK_HOME}/redis install && rm -f redis.conf

COPY redis.conf ${WORK_HOME}/redis/

WORKDIR ${WORK_HOME}/redis/

RUN cd ${WORK_HOME}/redis/bin

Volume /data

EXPOSE 6379

CMD ["redis-server" "${WORK_HOME}/redis/redis.conf"] 

# (5)构建镜像(注意别忘记后边的“.”)
docker build -t fyh-centos7-redis:v1.0 .
# (6)构建过程
[root@web2 redis]# docker build -t fyh-centos7-redis:v1.0 .
Sending build context to Docker daemon  2.564MB
Step 1/13 : FROM centos7_8_2003:v1
 ---> afb6fca791e0
Step 2/13 : MAINTAINER fuyonghai<fuyonghai@qq.com>
 ---> Using cache
 ---> d38da2e8f3cb
Step 3/13 : RUN yum -y install wget gcc make libgcc gcc-c++ glibc-devel centos-release-scl scl-utils-build devtoolset-8-toolchain
 ---> Using cache
 ---> fd394f02c4c5
Step 4/13 : RUN mkdir -p  /usr/local/service
 ---> Using cache
 ---> 9060bedf7877
Step 5/13 : ENV WORK_HOME=/usr/local/service
 ---> Using cache
 ---> bf15a460b0b2
Step 6/13 : ADD redis-6.2.5.tar.gz ${WORK_HOME}/
 ---> Using cache
 ---> 06b102a7ddff
Step 7/13 : RUN mv ${WORK_HOME}/redis-6.2.5  ${WORK_HOME}/redis && cd ${WORK_HOME}/redis && make PREFIX=${WORK_HOME}/redis install && rm -f redis.conf
 ---> Using cache
 ---> dee7eedc252a
Step 8/13 : COPY redis.conf ${WORK_HOME}/redis/
 ---> Using cache
 ---> 143393045492
Step 9/13 : WORKDIR ${WORK_HOME}/redis/
 ---> Using cache
 ---> e4d17d558309
Step 10/13 : RUN cd ${WORK_HOME}/redis/bin
 ---> Using cache
 ---> 2357dd669cbe
Step 11/13 : Volume /data
 ---> Using cache
 ---> 1b03ab8c6295
Step 12/13 : EXPOSE 6379
 ---> Using cache
 ---> d6c1ff8ac37a
Step 13/13 : CMD ["redis-server" "${WORK_HOME}/redis/redis.conf"]
 ---> Using cache
 ---> 0feda1f063dd
Successfully built 0feda1f063dd
Successfully tagged fyh-centos7-redis:v1.0
# (7)构建结果
docker images
fyh-centos7-redis                                                    v1.0                0feda1f063dd        6 days ago          732MB
# (8)启动测试
docker run --name myredis1 -d -P fyh-centos7-redis:v1.0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值