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


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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值