zoukankan      html  css  js  c++  java
  • dockerfile制作镜像

    镜像可以从docker hub下载,也可以通过编写dockerfile制作。

    制作一个基于centos的http web 服务器。

    1、创建工作目录

    [root@openstack ~]# mkdir /docker-built

    [root@openstack ~]# cd /docker-built/

    2、编辑Dockerfile

    [root@openstack docker-built]# touch Dockerfile

    [root@openstack docker-built]# vim Dockerfile
    FROM docker.io/centos:latest
    MAINTAINER thunder
    RUN yum -y install httpd
    ADD start.sh /usr/local/bin/start.sh
    ADD index.html /var/www/html/index.html
    注释:

    FROM docker.io/centos:latest    基于那个镜像来制作
    MAINTAINER thunder                镜像制作者
    RUN yum -y install httpd          
    ADD start.sh /usr/local/bin/start.sh
    ADD index.html /var/www/html/index.html

    ADD将文件<src>拷贝到新产生的镜像的文件系统对应的路径<dest>。所有拷贝到新镜像中的
    文件和文件夹权限为 0755,uid 和 gid 为 0

    3、创建 start.sh 脚本启劢 httpd 服务和 apache 默认首页 index.html 文件

    echo "/usr/sbin/httpd -DFOREGROUND" > start.sh
    注:/usr/sbin/httpd -DFOREGROUND 相当于执行了 systemctl start httpd

    [root@openstack docker-built]# chmod a+x start.sh
    [root@openstack docker-built]# echo 'docker image build test' > index.html
    4、使用命令 build 来创建新的 image
    [root@openstack docker-built]# docker build -t centos-httpd ./
    查看镜像列表:

    [root@openstack ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    test                latest              b84e9a9a290f        23 hours ago        333 MB
    centos-httpd        latest              b84e9a9a290f        23 hours ago        333 MB
    docker.io/centos    latest              75835a67d134        3 weeks ago         200 MB

    这里一个镜像就制作好了。

    [root@openstack ~]# docker save b84e9a9a290f > /opt/centos-httpd.tar   可以把制作好的镜像保存起来,以后要是使用的话就可以导入直接使用了。

    启动一个容器

    [root@openstack ~]# docker run -d -p 80:80 --name httpd centos-httpd /bin/bash -c /usr/local/bin/start.sh
    WARNING: IPv4 forwarding is disabled. Networking will not work.
    a047b20f8f83bd06da48882f0b51c05915a69ac184e31f7e25110e219e739d30
    遇到该问题解决办法:

    [root@openstack ~]# vim  /usr/lib/sysctl.d/00-system.conf   在末尾添加一行:

    net.ipv4.ip_forward=1

    [root@openstack ~]# systemctl restart network
    然后删除了之前创建的容器在重新创建。

    [root@openstack ~]# docker run -d -p 80:80 --name httpd centos-httpd /bin/bash -c /usr/local/bin/start.sh
    查看一下创建的容器:

    [root@openstack ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
    c40462185615        centos-httpd        "/bin/bash -c /usr..."   4 minutes ago       Up 4 minutes        0.0.0.0:80->80/tcp   httpd
    然后可以在页面访问:

    这个就是之前变天dockerfile时创建的首页。

  • 相关阅读:
    Shell 脚本中调用另一个 Shell 脚本的三种方式
    Shell脚本的三种执行方式
    python selenium中Excel数据维护(二)
    python里面的xlrd模块详解(一)
    selenium处理iframe定位于切换问题解决办法
    Selenium在定位的class含有空格的复合类的解决办法整理
    SqlSugar ORM已经支持读写分离
    ASP.NET Core的Kestrel服务器
    服务是如何加载并运行的, Kestrel、配置与环境
    ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解
  • 原文地址:https://www.cnblogs.com/winter1519/p/9910343.html
Copyright © 2011-2022 走看看