• 基于Dockerfile创建docker镜像


    0、先创建一个文件夹img

    mkdir img
    

      

    1、Linux上新建3个文件

    2、文件内容分别写入

    (1)Dockerfile中

    # 基于的基础镜像centos
    FROM centos
    # 维护该镜像的用户信息
    MAINTAINER The CentOS Project<cloud-ops@centos.org>
    # 镜像中的操作指令:安装apache软件包
    RUN yum -y update
    RUN yum -y install httpd
    # 开启镜像中的80端口
    EXPOSE 80
    # 复制网址首页文件
    ADD index.html /var/www/html/index.html
    # 将执行脚本复制到镜像中
    ADD run.sh /run.sh
    RUN chmod 775 /run.sh
    # 启动容器时执行脚本
    CMD ["/run.sh"]
    

      

    (2)index.html中

    web test
    

      

    (3)run.sh中

    #!/bin/bash
    rm -rf /run/httpd/*
    exec /usr/sbin/apachectl -D FOREGROUND

    说明:

    rm -rf /run/httpd/*     清理httpd的缓存
    exec /usr/sbin/apachectl -D FOREGROUND          启动apache服务

    3、使用Dockerfile生成镜像

    docker build -t httpd:centos .
    

    -t  指定镜像标签

    后面就会使用刚才编写的Dockerfile自动创建生成镜像。

    可以看到整个创建过程中,每运行一次Dockerfile中的指令,都会给初始镜像加上新的一层。

    4、使用新的镜像运行容器

    docker run -dit -p 49180:80 httpd:centos
    

      

    运行此命令前:先检查

    (1)docker images  新建镜像是否存在

    (2)netstat -an |grep 49180     宿主机中端口49180是否被占用,如果端口被占用就换一个端口号

    注意:80端口是容器中的端口,不用管

    运行此命令后:检查

    docker  ps -a

    看看该容器是否在运行(up)

    5、防火墙开放宿主机的端口49180

    firewall-cmd --zone=public --list-ports 
    firewall-cmd --zone=public --add-port=49180/tcp --permanent 
    firewall-cmd --reload 
    

      

    6、浏览器访问

    ip:49180

  • 相关阅读:
    python字符串相关的函数
    令人惊奇的gdb和pstack
    map的正确删除方式
    论道
    自动锁
    delete数组引发的core分析
    linux_硬链接和软链接区别
    vmware的卸载
    vmware + opensuse windows如何远程登录到suse上
    [置顶]援引个人新浪博客
  • 原文地址:https://www.cnblogs.com/andy9468/p/10715633.html
Copyright © 2020-2023  润新知