Docker安装Nginx
[TOC]
安装
拉取nginx镜像到本地
docker pull nginx
查看镜像库,获取本地的nginx镜像信息
[root@xylw ~]# docker images nginx
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 6 months ago 141MB
启动容器测试是否可用
docker run -d --name nginx -p 80:80 605c
> 605c为IMAGE ID -d 指定容器以守护进程方式在后台运行 –name 指定容器名称,此处我指定的是nginx -p 指定主机与容器内部的端口号映射关系,格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机80端口,映射容器80端口
执行成功返回 CONTAINER IDbdf02506135d182f1bef29468779efed6439e1245893049a290384da3fdeb626
执行docker ps
可以看到运行的容器
[root@xylw d]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bdf02506135d 605c "/docker-entrypoint.…" 41 seconds ago Up 39 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
开放80端口,并重启防火墙
firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld.service
>命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效
在浏览器访问CentOS主机,看到Nginx的欢迎页即成功。
修改nginx的配置文件
修改配置有两种方式,一种是进入容器中修改,第二种是将nginx容器内部配置文件挂载到主机,此处省略第一种方式,以下是第二种方式的操作。
创建本地目录
mkdir -p ./nginx/{conf,html,logs}
将容器中的相应文件copy到主机目录中
docker cp bdf:/etc/nginx/nginx.conf /d/nginx
docker cp bdf:/etc/nginx/conf.d/default.conf /d/nginx/conf/
> bdf
为容器ID
停止并移除容器
docker stop bdf
docker rm bdf
启动容器挂载目录
docker run -d --name nginx -p 80:80 -v /d/nginx/nginx.conf:/etc/nginx/nginx.conf -v /d/nginx/logs:/var/log/nginx -v /d/nginx/html:/usr/share/nginx/html -v /d/nginx/conf:/etc/nginx/conf.d --privileged=true nginx
>参数说明 -name 给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器 -p 映射端口,将docker宿主机的80端口和容器的80端口进行绑定 -v 挂载文件用的, -e TZ=Asia/Shanghai 设置时区 第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件, 第二个-v 表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/d/nginx/logs/下面 第三个-v 表示的和第一个-v意思一样的。
在浏览器访问CentOS主机,看到403界面,这时要在/d/nginx/html/
中新建index.html
,再次访问成功。
<!DOCTYPE html>
<html>
<head>
<title>nginx</title>
</head>
<body>
<h1>Hello Nginx.......</h1>
</body>
</html>
安装mysql
docker run --restart=always --name mysql57 -d -p 3306:3306 -v /d/mysql/conf:/etc/mysql/conf.d -v /d/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1qaz2wsx mysql:5.7