highlight: a11y-dark
theme: juejin
实验一:基于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版本官方(http://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