实验一:基于alpine为基础镜像制作Nginx业务
/opt/dockerfile/web/tomcat/tomcat-app2# cd /opt/dockerfile/web/
#创建nginx-ubuntu版本目录
/opt/dockerfile/web# mv nginx nginx-ubuntu
#创建nginx-alpine版本目录
/opt/dockerfile/web# mkdir nginx-alpine
下载alpine
/opt/dockerfile/web# docker pull alpine
进入alpine
/opt/dockerfile/web# docker run -it alpine sh
安装vim包
/ # apk add vim
查看alpine版本
alpine版本官方(dl-cdn.alpinelinux.org/alpine/)
/ # cat /etc/issue
Welcome to Alpine Linux 3.17
Kernel \r on an \m (\l)
#退出
/ # exit
/opt/dockerfile/web# cd nginx-alpine/
替换源
/opt/dockerfile/web/nginx-alpine# vim repositories
#https://dl-cdn.alpinelinux.org/alpine/v3.17/main
#https://dl-cdn.alpinelinux.org/alpine/v3.17/community
https://mirrors.aliyun.com/alpine/v3.17/main
https://mirrors.aliyun.com/alpine/v3.17/community
Dockerfile文件
/opt/dockerfile/web/nginx-alpine# vim Dockerfile
FROM alpine
#维护者信息
LABEL maintainer="stao <clark_0932@qq.com>"
#ADD repositories /etc/apk/repositories
RUN apk update && apk add iotop gcc libgcc libc-dev libcurl libc-utils pcre-dev zlib-dev libnfs make pcre pcre2 zip unzip net-tools pstree wget libevent iproute2 libevent-dev
ADD nginx-1.18.0.tar.gz /usr/local/src
RUN cd /usr/local/src/nginx-1.18.0 && ./configure --prefix=/apps && make && make install && ln -sv /apps/nginx/sbin/nginx /usr/sbin
下载nginx包
/opt/dockerfile/web/nginx-alpine# wget http://nginx.org/download/nginx-1.18.0.tar.gz
#运行此步时、出现下图情况、建议多试几次
/opt/dockerfile/web/nginx-alpine# docker build -t nginx-v1:1.18.0-alpine .
上传文件
点击下载测试软件:static.zip和nginx.conf(1.18.0)
#关闭守护进程、更改启动账号
/opt/dockerfile/web/nginx-alpine# vim nginx.conf
user nginx; <--启动账号
daemon off; <--关闭守护进程
/opt/dockerfile/web/nginx-alpine# vim Dockerfile
FROM alpine
#维护者信息
LABEL maintainer="stao <clark_0932@qq.com>"
#ADD repositories /etc/apk/repositories
RUN apk update && apk add iotop gcc libgcc libc-dev libcurl libc-utils pcre-dev zlib-dev libnfs make pcre pcre2 zip unzip net-tools pstree wget libevent iproute2 libevent-dev
ADD nginx-1.18.0.tar.gz /usr/local/src
RUN cd /usr/local/src/nginx-1.18.0 && ./configure --prefix=/apps/nginx && make && make install && ln -sv /apps/nginx/sbin/nginx /usr/sbin
ADD nginx.conf /apps/nginx/conf
ADD static.zip /apps/nginx/html
RUN cd /apps/nginx/html && unzip static.zip && rm -rf static.zip
CMD ["nginx"]
/opt/dockerfile/web/nginx-alpine# vim build-command.sh
#!/bin/bash
docker build -t nginx:1.18.0-alpine .
/opt/dockerfile/web/nginx-alpine# bash build-command.sh
/opt/dockerfile/web/nginx-alpine# docker run --rm -it -p80:80 nginx:1.18.0-alpine
在alpine中创建账户
/opt/dockerfile/web/nginx-alpine# docker run --rm -it -p80:80 nginx:1.18.0-alpine sh
/ # addgroup -g 2020 -S nginx && adduser -G nginx -s /sbin/nologin -S -u 2020 nginx
/ # id nginx
uid=2020(nginx) gid=2020(nginx) groups=2020(nginx),2020(nginx)
/ # addgroup -g 2019 -S www && adduser -s /sbin/nologin -S -D -u 2019 -G www www
/ # id www
uid=2019(www) gid=2019(www) groups=2019(www),2019(www)
/ # exit
/opt/dockerfile/web/nginx-alpine# vim Dockerfile
FROM alpine
#维护者信息
LABEL maintainer="stao <clark_0932@qq.com>"
#ADD repositories /etc/apk/repositories
RUN apk update && apk add iotop gcc libgcc libc-dev libcurl libc-utils pcre-dev zlib-dev libnfs make pcre pcre2 zip unzip net-tools pstree wget libevent iproute2 libevent-dev && addgroup -g 2020 -S nginx && adduser -G nginx -s /sbin/nologin -S -u 2020 nginx && addgroup -g 2019 -S www && adduser -s /sbin/nologin -S -D -u 2019 -G www www
ADD nginx-1.18.0.tar.gz /usr/local/src
RUN cd /usr/local/src/nginx-1.18.0 && ./configure --prefix=/apps/nginx && make && make install && ln -sv /apps/nginx/sbin/nginx /usr/sbin
ADD nginx.conf /apps/nginx/conf
ADD static.zip /apps/nginx/html
RUN cd /apps/nginx/html && unzip static.zip && rm -rf static.zip && chown nginx.nginx /apps -R
CMD ["nginx"]
/opt/dockerfile/web/nginx-alpine# bash build-command.sh
容器跑起来
/opt/dockerfile/web/nginx-alpine# docker run --rm -it -p80:80 nginx:1.18.0-alpine
测试
再开一个新窗口
实验二:基于ubuntu为基础镜像制作Nginx业务
进入ubuntu目录
/opt/dockerfile/web/nginx-ubuntu# pwd
/opt/dockerfile/web/nginx-ubuntu
下载ubuntu:18.04
/opt/dockerfile/web/nginx-ubuntu# docker pull ubuntu:18.04
拷贝文件
/opt/dockerfile/web/nginx-ubuntu# cp ../nginx-alpine/nginx-1.18.0.tar.gz .
/opt/dockerfile/web/nginx-ubuntu# cp ../nginx-alpine/nginx.conf .
/opt/dockerfile/web/nginx-ubuntu# cp ../nginx-alpine/static.zip .
/opt/dockerfile/web/nginx-ubuntu# cp ../nginx-alpine/Dockerfile .
/opt/dockerfile/web/nginx-ubuntu# cp ../nginx-alpine/build-command.sh .
/opt/dockerfile/web/nginx-ubuntu# vim Dockerfile
FROM ubuntu:18.04
#维护者信息
LABEL maintainer="stao <clark_0932@qq.com>"
RUN apt update && apt install -y ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev gcc openssh-server iotop unzip zip make
RUN groupadd -g 2020 nginx && useradd -g nginx -s /usr/sbin/nologin -u 2020 nginx
ADD nginx-1.18.0.tar.gz /usr/local/src
RUN cd /usr/local/src/nginx-1.18.0 && ./configure --prefix=/apps/nginx && make && make install && ln -sv /apps/nginx/sbin/nginx /usr/sbin
ADD nginx.conf /apps/nginx/conf
ADD static.zip /apps/nginx/html
RUN cd /apps/nginx/html && unzip static.zip && rm -rf static.zip && chown nginx.nginx /apps -R
CMD ["nginx"]
/opt/dockerfile/web/nginx-ubuntu# vim build-command.sh
#!/bin/bash
docker build -t nginx:1.18.0-ubuntu .
执行
/opt/dockerfile/web/nginx-ubuntu# bash build-command.sh
/opt/dockerfile/web/nginx-ubuntu# docker run --rm -it -p1111:80 nginx:1.18.0-ubuntu