美文网首页
Docker系列之实战:7.安装httpd.md

Docker系列之实战:7.安装httpd.md

作者: 小六的昵称已被使用 | 来源:发表于2019-02-25 18:33 被阅读0次

    title: Docker系列之实战:7.安装httpd.md
    categories: Docker
    tags:
    - Docker
    timezone: Asia/Shanghai
    date: 2019-02-25


    环境

    [root@centos181001 ~]# cat /etc/centos-release
    CentOS Linux release 7.6.1810 (Core)
    
    [root@centos181001 ~]# docker -v
    Docker version 18.09.1, build 4c52b90
    
    [root@centos181001 content]# docker-compose --version
    docker-compose version 1.23.2, build 1110ad01
    

    第一步:搜索和拉取官方Nginx镜像

    https://hub.docker.com/_/httpd

    ### 搜索镜像
    docker search httpd
    
    ### 拉取最新镜像
    docker pull httpd
    
    ### 拉取指定版本镜像
    docker pull httpd:2.4.38
    
    ### 拉取指定版本镜像(基于alpine构建,镜像更小)
    docker pull httpd:2.4.38-alpine
    
    ### 查看拉取的镜像
    docker image ls
    docker image ls httpd
    

    第二步:如何使用image

    1.运行一个简单的示例

    mkdir -p /home/html
    echo "Hello httpd" > /home/html/index.html
    
    docker run -dit \
            --name my-running-app \
            -p 80:80 \
            -v /home/html:/usr/local/apache2/htdocs/ \
            httpd:2.4.38
    
    curl http://11.11.11.63
    

    2.使用Dockerfile重新构建并将网站内容打包到image

    cat <<EOF >Dockerfile
    FROM httpd:2.4.38
    COPY html/ /usr/local/apache2/htdocs/
    EOF
    
    mkdir html
    echo "Hello httpd" > html/index.html
    
    docker build -t my-apache2 .
    docker run -dit --name my-running-app -p 8080:80 my-apache2
    

    3.自定义httpd.conf

    ## 1.创建一个临时容器
    docker run -d --name temp-httpd httpd:2.4.38
    
    ## 2.将配置文件copy出来
    docker cp temp-httpd:/usr/local/apache2/conf/httpd.conf ./httpd.conf
    
    ## 3.删除临时容器
    docker rm -f temp-httpd
    
    ## 4.编辑配置文件
    vim httpd.conf
    Listen 80 改为 Listen 8888
    
    ## 5.使用修改过的配置文件重新生成镜像并运行容器
    cat <<EOF >Dockerfile
    FROM httpd:2.4.38
    COPY httpd.conf /usr/local/apache2/conf/httpd.conf
    EOF
    
    docker build -t my-apache2 .
    docker run -dit --name my-running-app -p 8888:8888 my-apache2
    
    ## 6.使用以下地址访问测试
    http://11.11.11.63:8888
    

    4.SSL/HTTPS

    ## 1.创建一个临时容器
    docker run -d --name temp-httpd httpd:2.4.38
    
    ## 2.将配置文件copy出来
    docker cp temp-httpd:/usr/local/apache2/conf/httpd.conf ./httpd.conf
    
    ## 3.删除临时容器
    docker rm -f temp-httpd
    
    ## 4.制作自签名证书
    参考:https://www.cnblogs.com/lihuang/articles/4205540.html
    
    ## 5.编辑配置文件:把以下3行取消注释
    vim httpd.conf
    #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
    #LoadModule ssl_module modules/mod_ssl.so
    #Include conf/extra/httpd-ssl.conf
    
    ## 6.创建并编辑Dockerfile
    cat <<EOF >Dockerfile
    FROM httpd:2.4.38
    COPY httpd.conf /usr/local/apache2/conf/httpd.conf
    COPY server.* /usr/local/apache2/conf/
    EOF
    
    docker build -t my-apache2 .
    docker run -dit --name my-running-app -p 8888:8888 -p 443:443 my-apache2
    
    ## 7.打开以下测试地址
    https://11.11.11.63
    

    5.docker-compose.yml

    cat <<EOF >docker-compose.yml 
    version: "3"
    services:
    
        httpd:
            image: httpd:2.4.38
            ports:
                - 80:80
                - 443:443
            volumes:
                - ./httpd.conf:/usr/local/apache2/conf/httpd.conf
                - ./server.crt:/usr/local/apache2/conf/server.crt
                - ./server.key:/usr/local/apache2/conf/server.key
                - ./html:/usr/local/apache2/htdocs/
    EOF
    
    docker stack deploy -c docker-compose.yml STACK
    
    https://11.11.11.63
    

    相关文章

      网友评论

          本文标题:Docker系列之实战:7.安装httpd.md

          本文链接:https://www.haomeiwen.com/subject/swzgyqtx.html