中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

创建Nginx镜像

创建一个基于Nginx的Docker镜像,用于后续在Docker容器中部署和运行Nginx服务。

  1. 启动Docker。
    dockerd &
    ps -ef | grep docker
  2. 查找并下载镜像源。
    • CentOS:
      选择OFFICIAL为OK的版本,此版本为CentOS官方镜像。
      1
      2
      3
      docker search centos
      docker pull centos:7
      docker images
      
    • openEuler 20.03:
      1
      2
      3
      docker search openeuler 
      docker pull openeuler20/origin-pod:v3.11
      docker images
      

    若现场环境无法直接联网但可通过设置代理的方式访问外网,则配置好代理服务器环境变量后,需要对Docker进行配置。

    配置代理服务器环境变量的具体操作步骤如下:
    1. 创建目录。
      1
      mkdir /etc/systemd/system/docker.service.d/
      
    2. 新建并编辑http-proxy.conf文件。
      1
      vim /etc/systemd/system/docker.service.d/http-proxy.conf
      
    3. “i”进入编辑模式,添加如下内容。以下参数请根据实际情况修改:youraccount为用户名,password为密码,
      IP Address为代理的IP地址,PORT为代理端口。
      [Service]
      Environment="http_proxy=http://youraccount:password@IP Address:PORT"
    4. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    5. 重启服务器生效。

    若始终无外网权限,可以在有外网权限的服务器中下载相关镜像后,再备份到部署服务器。具体操作步骤如下:

    1. 访问镜像网站:https://mirrors.tools.huawei.com/openeuler/openEuler-22.03-LTS-SP1/docker_img/

    2. 根据服务器架构下载对应Docker镜像。此处以下载aarch64架构Docker镜像的为例。

    3. 将下载好的Docker镜像上传至Server端“/home”目录下。
    4. 在Docker中加载镜像。
      docker load -i /home/openEuler-docker.aarch64.tar.xz

      或者

      docker load < /home/openEuler-docker.aarch64.tar.xz

    5. 查看加载的镜像。
      docker images

  3. dockerfile创建镜像。
    1. 创建“dockerfile”目录。
      1
      mkdir /home/dockerfile
      
    2. 将编译并配置好的Nginx及其依赖复制到“dockerfile”目录下。
      • CentOS:
        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
        
      • openEuler:
        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
        
    3. 将物理机上的sysctl.conf拷贝到“dockerfile”目录下。
      1
      \cp /etc/sysctl.conf /home/dockerfile
      
    4. 创建Nginx启动脚本。
      1. 新建start.sh脚本文件。
        1
        vim /home/dockerfile/start.sh
        
      2. 写入以下内容。
        sysctl -p
        /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
      3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    5. 创建“dockerfile”文件。
      1. 新建文件。
        1
        vi /home/dockerfile/dockerfile
        
      2. 将以下内容写入文件。
        • CentOS:
          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
        • openEuler:
          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
      3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
        运行命令说明参考表1

        执行/usr/bin/top的原因:Docker容器后台运行,必须有一个一直挂起的命令(运行top,tail等),否则容器会自动退出。

        表1 命令说明

        命令

        说明

        FROM

        基于CentOS(即我们下载的镜像)镜像创建镜像。

        USER

        镜像以root用户运行。

        WORDIR

        工作目录为/home。

        COPY

        将物理机上dockerfile目录里的文件拷贝到容器内的相关目录。

        RUN

        运行相关命令。

        CMD

        启动容器时运行相关脚本。

    6. 创建镜像。
      • CentOS:
        1
        2
        3
        cd /home/dockerfile
        docker build -t arm/centos7/nginx:http .
        docker images | grep arm/centos7/nginx
        
      • openEuler:
        1
        2
        3
        cd /home/dockerfile
        docker build -t arm/openeuler20/nginx:http .
        docker images | grep arm/openeuler20/nginx
        
      • arm/centos7/nginx:http分别为镜像名和tag。
      • arm/openeuler20/nginx:http分别为镜像名和tag。
      • “.”表示使用当前目录的dockerfile创建镜像。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词