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