Linux


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

页面列表

ITEM_HTML