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时创建的首页。

  • 相关阅读:
    Python电影投票系统
    Python打印一个等边三角形
    打印正直角三角形
    MySQL指令
    MySQL安装 8.0.15版本
    局部变量 全局变量
    目录
    格式化输出
    转义字符
    ffmpeg 从内存中读取数据(或将数据输出到内存)
  • 原文地址:https://www.cnblogs.com/winter1519/p/9910343.html
Copyright © 2011-2022 走看看