美文网首页
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