第一步:
第二步:
http://www.runoob.com/docker/docker-install-nginx.html
前提
第一步:
https://segmentfault.com/a/1190000008833012
http://www.cnblogs.com/s-b-b/p/8624491.html
version: "2"
services:
# Nginx 1.11.10: https://hub.docker.com/_/nginx/
web:
image: nginx:1.11.10
ports:
# 将主机的 8080 端口映射到容器的 80 端口
- 8080:80
depends_on:
- php
# 同 php 一起共享 ./apps 目录
volumes_from:
- php
# 创建一个数据卷,由 ./images/nginx/config => /etc/nginx/conf.d
volumes:
- ./images/nginx/config:/etc/nginx/conf.d:ro
# PHP 7.1-fpm: https://hub.docker.com/_/php/
php:
image: php:7.1-fpm
volumes:
- ./apps:/mnt/apps
# MySQL 5.7: https://hub.docker.com/_/mysql/
database:
image: mysql:5.7
# 配置一些环境变量,具体的环境变量细节可以访问上面的网址查看
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_USER: "dailybird"
MYSQL_PASSWORD: "dailybirdo"
volumes:
- ./database:/var/lib/mysql
第二步:
# 运行docker-compose服务
$ docker-compose up -d
# 停止服务
$ docker-compose stop
# 删除该服务相关的容器
$ docker-compose rm
# 运行已存在docker-compose的服务
$ docker-compose start
1、每个镜像都定义了可对外提供的接口,Nginx镜像只默认提供了80和443端口,你自然无法访问到容器内的8080端口。
2、只需要在docker create或者docker run创建容器时携带--expose参数,就能把指定的端口开放出来。
--expose Expose a port or a range of ports
https://segmentfault.com/q/1010000008776168
iptables:No chain/target/match by the name