Docker镜像制作总结----配合阿里云容器镜像服务

  • 前言
  • 一、实验:
  • 1.以centos7作为基础镜像
  • 2.在里面安装好ip,vim,ping命令
  • 3.编译好nginx,使用我们指定的配置文件nginx.conf
  • 4.启动容器的时候,就启动nginx
  • 5.网页代码上传到容器里:
  • (1)直接做到镜像里
  • (2)使用数据卷挂载使用 /usr/local/nginx1/html/
  • 二、实验步骤(十步法)
  • 1.准备环境,新建目录
  • 2.解决软件的依赖关系,需要安装的软件包
  • 3. 解压 下载的nginx的源码包
  • 4.生成编译前配置工作-->Makefile
  • 5.编译
  • 6.下载nginx的源码文件
  • 7.编写Dockerfile
  • 8.生成我们的nginx的镜像
  • 9.启动容器,使用我们的自己编译的镜像
  • 10..测试访问web服务
  • 总结
  • 3.如果你看到这里了,麻烦👍 + 关注哈,感谢支持,码字不易,谢谢理解.



前言



提示:以下是本篇文章正文内容,下面案例可供参考

一、实验:

1.以centos7作为基础镜像

2.在里面安装好ip,vim,ping命令

3.编译好nginx,使用我们指定的配置文件nginx.conf

4.启动容器的时候,就启动nginx

5.网页代码上传到容器里:

(1)直接做到镜像里

(2)使用数据卷挂载使用 /usr/local/nginx1/html/



二、实验步骤(十步法)

1.准备环境,新建目录

[root@sc-docker-server ~]# cd /mydocker/
[root@sc-docker-server mydocker]# ls
app.py  Dockerfile  feng  getting-started  requirements.txt
[root@sc-docker-server mydocker]# mkdir nginx
[root@sc-docker-server mydocker]# cd nginx/
[root@sc-docker-server nginx]# pwd
/mydocker/nginx
[root@sc-docker-server nginx]

准备安装nginx的脚本和nginx源码文件

[root@sc-docker-server nginx]# ls
install_nginx.sh  nginx-1.21.1.tar.gz
[root@sc-docker-server nginx]#
[root@sc-docker-server nginx]# cat install_nginx.sh
#!/bin/bash

代码如下(示例):

2.解决软件的依赖关系,需要安装的软件包

yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc gcc-c++ autoconf automake make
#download nginx
mkdir -p /nginx
cd /nginx

3. 解压 下载的nginx的源码包

tar xf nginx-1.21.1.tar.gz
cd  nginx-1.21.1
<font color=#999AAA >

4.生成编译前配置工作–>Makefile

./configure --prefix=/usr/local/nginx1  --with-threads --with-http_ssl_module  --with-

http_realip_module  --with-http_v2_module --with-file-aio  --with-

http_stub_status_module --with-stream

5.编译

make
#编译安装--》将编译好的二进制程序安装指定目录/usr/local/nginx1
make   install
[root@sc-docker-server nginx]#

6.下载nginx的源码文件

[root@sc-docker-server nginx]# curl -O  http://nginx.org/download/nginx-1.21.1.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1039k  100 1039k    0     0   481k      0  0:00:02  0:00:02 --:--:--  481k
[root@sc-docker-server nginx]#

7.编写Dockerfile

[root@sc-docker-server nginx]# vim Dockerfile
FROM centos:7
ENV NGINX_VERSION 1.21.1
ENV AUTHOR sanchuang
WORKDIR /nginx
COPY . /nginx
RUN set -ex; \
    bash  install_nginx.sh ; \
    yum install vim iputils  net-tools iproute -y
EXPOSE 80
ENV PATH=/usr/local/nginx1/sbin:$PATH

STOPSIGNAL SIGQUIT
CMD ["nginx","-g","daemon off;"]

8.生成我们的nginx的镜像

[root@sc-docker-server nginx]# ls
Dockerfile  install_nginx.sh  nginx-1.21.1.tar.gz
[root@sc-docker-server nginx]# docker build -t sanchuang-nginx:1.0 .

[root@sc-docker-server nginx]# docker images
REPOSITORY                 TAG         IMAGE ID       CREATED          SIZE
sanchuang-nginx

9.启动容器,使用我们的自己编译的镜像

[root@sc-docker-server nginx]# docker run -dp 3390:80 --name sc-yihe-nginx-1 sanchuang-nginx:1.0
de5472545b7a01ede99d7f243f598fdd96b90b9f8c8450f1bda603a5568a9da0
[root@sc-docker-server nginx]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                       NAMES
de5472545b7a   sanchuang-nginx:1.0   "nginx -g 'daemon of…"   8 seconds ago   Up 7 seconds   0.0.0.0:3390->80/tcp, :::3390->80/tcp                  sc-yihe-nginx-1
f1d0ff67eda9   sc-zhengbo-1          "bash"                   5 hours ago     Up 5 hours                       zhengbo-1
43d7ba23726e   sc-ubuntu-1           "bash"                   6 hours ago     Up 6 hours                       feng-2
c918a318e274   sc-node-js-1          "docker-entrypoint.s…"   6 hours ago     Up 6 hours     0.0.0.0:3000->3000/tcp, :::3000->3000/tcp              sc-node-js-1
a4078e1a7ea1   mysql:5.7.35          "docker-entrypoint.s…"   7 days ago      Up 3 hours     0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   sc-mysql-1
[root@sc-docker-server nginx]#

10…测试访问web服务

curl  192.168.0.17:3390




总结



1.首先这个实验是对上一篇博客的补充,可以做个实验提升一下自己docker镜像制作的熟悉度,练练手嘛,熟能生巧。有不会的可以看上一篇哈。

2.下一次会写一个docker的swarm的集群项目,这个很重要唷,提前预告一下哈。