zoukankan      html  css  js  c++  java
  • 基于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

  • 相关阅读:
    oracle 导入数据时提示只有 DBA 才能导入由其他 DBA 导出的文件
    oracle 常用语句
    android udp 无法收到数据 (模拟器中)
    android DatagramSocket send 发送数据出错
    AtCoder ABC 128E Roadwork
    AtCoder ABC 128D equeue
    AtCoder ABC 127F Absolute Minima
    AtCoder ABC 127E Cell Distance
    CodeForces 1166E The LCMs Must be Large
    CodeForces 1166D Cute Sequences
  • 原文地址:https://www.cnblogs.com/andy9468/p/10715633.html
Copyright © 2011-2022 走看看