docker封装镜像

xiaoxiao2025-07-11  12

一、docker镜像的封装(httpd服务)

vim dvd.repo

[rhel7] name=rhel7 baseurl=http://172.25.20.250/rhel7.3 gpgcheck=0

vim Dockerfile

FROM rhel7 EXPOSE 80 COPY dvd.repo /etc/yum.repos.d/dvd.repo RUN rpmdb --rebuilddb && yum install -y httpd && yum clean all CMD ["/usr/sbin/httpd","-D","FOREGROUND"]

[root@foundation20 web]# docker build -t rhel7:v1 .

二、docker镜像的封装(sshd服务)

vim Dockerfile

FROM rhel7 EXPOSE 22 COPY dvd.repo /etc/yum.repos.d/dvd.repo RUN rpmdb --rebuilddb && yum install -y openssh-server openssh-clients && yum clean all&& ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" && ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" && ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ed25519_key -N "" && echo root:westos | chpasswd CMD ["/usr/sbin/sshd","-D"]

vim dvd.repo

[rhel7] name=rhel7 baseurl=http://172.25.20.250/rhel7.3 gpgcheck=0

docker build -t rhel7:v2 .

三、docker镜像的封装(通过supervisord,将httpd和sshd结合起来)

vim dvd.repo

[dvd] name=rhel7.0 baseurl=http://172.25.254.250/rhel7.0/x86_64/dvd/ gpgcheck=0 [docker] name=docker baseurl=http://172.25.254.20/docker gpgcheck=0

vim Dockerfile

FROM rhel7 EXPOSE 80 22 COPY dvd.repo /etc/yum.repos.d/dvd.repo COPY supervisord.conf /etc/supervisord.conf RUN rpmdb --rebuilddb && yum install -y httpd openssh-server supervisor && yum clean all && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" -q && ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" -q && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N "" -q && echo root:westos | chpasswd CMD ["/usr/bin/supervisord"]

vim supervisord.conf

[supervisord] nodaemon=true [program:httpd] command=/usr/sbin/httpd [program:sshd] command=/usr/sbin/sshd -D

docker build -t rhel7:v3 .

三、docker镜像的封装(nginx)

vim Dockerfile

FROM rhel7 EXPOSE 80 ADD nginx-1.14.0.tar.gz /mnt COPY dvd.repo /etc/yum.repos.d/dvd.repo RUN rpmdb --rebuilddb && yum install -y gcc pcre-devel openssl-devel make && cd /mnt/nginx-1.14.0 && sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio && make && make install && cd .. && rm -fr /mnt/nginx-1.14.0 && yum remove gcc pcre-devel openssl-devel make -y && yum clean all FROM rhel7 COPY --from=build /usr/local/nginx /usr/local/nginx CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

vim dvd.repo

[dvd] name=rhel7.0 baseurl=http://172.25.254.250/rhel7.2 gpgcheck=0

docker build -t rhel7:v4 .

 

vim Dockerfile

FROM nginx as base # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones ARG TIME_ZONE RUN mkdir -p /opt/var/cache/nginx && \ cp -a --parents /usr/lib/nginx /opt && \ cp -a --parents /usr/share/nginx /opt && \ cp -a --parents /var/log/nginx /opt && \ cp -aL --parents /var/run /opt && \ cp -a --parents /etc/nginx /opt && \ cp -a --parents /etc/passwd /opt && \ cp -a --parents /etc/group /opt && \ cp -a --parents /usr/sbin/nginx /opt && \ cp -a --parents /lib/x86_64-linux-gnu/libpcre.so.* /opt && \ cp -a --parents /lib/x86_64-linux-gnu/libz.so.* /opt && \ cp -a --parents /lib/x86_64-linux-gnu/libc.so.* /opt && \ cp -a --parents /lib/x86_64-linux-gnu/libdl.so.* /opt && \ cp -a --parents /lib/x86_64-linux-gnu/libpthread.so.* /opt && \ cp -a --parents /lib/x86_64-linux-gnu/libcrypt.so.* /opt && \ cp -a --parents /usr/lib/x86_64-linux-gnu/libssl.so.* /opt && \ cp -a --parents /usr/lib/x86_64-linux-gnu/libcrypto.so.* /opt && \ cp /usr/share/zoneinfo/${TIME_ZONE:-ROC} /opt/etc/localtime FROM gcr.io/distroless/base COPY --from=base /opt / EXPOSE 80 ENTRYPOINT ["nginx", "-g", "daemon off;"]

vim dvd.repo

[dvd] name=rhel7.0 baseurl=http://172.25.254.250/rhel7.2 gpgcheck=0

docker build -t rhel7:v5 .

 

转载请注明原文地址: https://www.6miu.com/read-5032890.html

最新回复(0)