创建一个基于Nginx的Docker镜像,用于后续在Docker容器中部署和运行Nginx服务。
1 2 |
dockerd & ps -ef | grep docker |
1 2 3 |
docker search openeuler docker pull openeuler20/origin-pod:v3.11 docker images |
若现场环境无法直接联网但可通过设置代理的方式访问外网,则配置好代理服务器环境变量后,需要对Docker进行配置。
1
|
mkdir /etc/systemd/system/docker.service.d/
|
1
|
vim /etc/systemd/system/docker.service.d/http-proxy.conf
|
1 2 |
[Service] Environment="http_proxy=http://youraccount:password@IP Address:PORT" |
若始终无外网权限,可以在有外网权限的服务器中下载相关镜像后,再备份到部署服务器。具体操作步骤如下:
1
|
docker load -i /home/openEuler-docker.aarch64.tar.xz |
或者
1
|
docker load < /home/openEuler-docker.aarch64.tar.xz |
1
|
docker images
|
1
|
mkdir /home/dockerfile
|
1 2 3 4 5 6 7 |
\cp -r /usr/local/nginx /home/dockerfile \cp -r /usr/lib64/perl5 /home/dockerfile \cp -r /usr/local/lib64/perl5 /home/dockerfile/perl5_1 \cp -r /usr/share/perl5 /home/dockerfile/perl5_2 \cp -r /usr/sbin/ifconfig /home/dockerfile \cp -r /usr/sbin/ethtool /home/dockerfile \cp -r /usr/bin/netstat /home/dockerfile |
1 2 3 4 5 6 7 8 |
\cp -r /usr/local/nginx /home/dockerfile \cp -r /usr/lib64/perl5 /home/dockerfile \cp -r /usr/lib64/perl5 /usr/local/lib64/ \cp -r /usr/local/lib64/perl5 /home/dockerfile/perl5_1 \cp -r /usr/share/perl5 /home/dockerfile/perl5_2 \cp -r /usr/sbin/ifconfig /home/dockerfile \cp -r /usr/sbin/ethtool /home/dockerfile \cp -r /usr/bin/netstat /home/dockerfile |
1
|
\cp /etc/sysctl.conf /home/dockerfile |
1
|
vim /home/dockerfile/start.sh
|
1 2 |
sysctl -p /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf |
1
|
vi /home/dockerfile/dockerfile
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
FROM centos:7 USER root WORKDIR /home/ COPY sysctl.conf /etc/ COPY nginx /usr/local/nginx COPY perl5 /usr/lib64/perl5 COPY perl5_1 /usr/local/lib64/perl5 COPY perl5_2 /usr/share/perl5 COPY ifconfig /usr/sbin/ COPY ethtool /usr/sbin/ COPY netstat /usr/sbin/ COPY start.sh /home/ RUN echo 'ulimit -n 102400' >> /etc/profile RUN chmod +x /home/start.sh CMD /home/start.sh && /usr/bin/top |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
FROM openeuler20/origin-pod:v3.11 USER root WORKDIR /home/ COPY sysctl.conf /etc/ COPY nginx /usr/local/nginx COPY perl5 /usr/lib64/perl5 COPY perl5_1 /usr/local/lib64/perl5 COPY perl5_2 /usr/share/perl5 COPY ifconfig /usr/sbin/ COPY ethtool /usr/sbin/ COPY netstat /usr/sbin/ COPY start.sh /home/ RUN echo 'ulimit -n 102400' >> /etc/profile RUN chmod +x /home/start.sh CMD /home/start.sh && /usr/bin/top |
执行/usr/bin/top的原因:Docker容器后台运行,必须有一个一直挂起的命令(运行top,tail等),否则容器会自动退出。
1 2 3 |
cd /home/dockerfile docker build -t arm/centos7/nginx:http . docker images | grep arm/centos7/nginx |
1 2 3 |
cd /home/dockerfile docker build -t arm/openeuler20/nginx:http . docker images | grep arm/openeuler20/nginx |