基于alpine和ubuntu为基础镜像制作Nginx业务(小节8)

449 阅读3分钟

实验一:基于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 .

图片.png

上传文件

点击下载测试软件: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

图片.png

在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

测试 图片.png

再开一个新窗口

图片.png

实验二:基于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

图片.png

图片.png