20181230 假期闲来无事,整理一下 docker nginx 学习经历

1 、下载安装

官网

https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1

安装 docker-ce
sudo apt-get install docker-ce

2、Docker 理解

1)、每一个 Docker container (容器)就是一个特定应用程序,启动后就是一个特定进程
2)、一个容器就是一项服务

本次环境:
	宿主机 Ubuntu 18.04 已经安装了 nginx
	a).第一次宿主机已经安装过 LAMP
	b).第二次完全卸载掉 apache2,但是在处理 docker php 的时候还是会出现一些冲突和错误
	c).第三次干脆重新安装了一个 ubuntu 虚拟机,处理好 nginx 和 apache 冲突之后
	d).回到了第一次使用的宿主机继续学习
	e).第三次的宿主机将用于重复操作和复习

本文假设:
	需要单独部署一套 nginx 网站 (其实网站也是一个服务)
	学习过程中,容器内配置 nginx 可以直接从宿主机 cp 之后修改!
	实际部署的时候,宿主机不一定就安装了 nginx 的

3、下载、安装、运行 nginx 容器

1)、下载 nginx docker
docker search nginx
docker pull nginx

2)、准备容器内网站需要的数据和配置
	参考:
	https://blog.csdn.net/qq_26641781/article/details/80883192
	创建挂载目录
	sudo mkdir -p /data/nginx/{conf,conf.d,html,logs}
	cd /data/nginx/
	ls
	conf  conf.d  html  logs

	在 html 下建立一个 index.html
		<h2>hello!</h2>
		<h1>WZH</h1>
		<h3>20181224</h3>

3)、创建 /data/nginx/ 的 nginx.conf
	因为我的 host 已经安装了 nginx,可以直接从 /etc/nginx cp 他的 nginx.conf 过来!
	sudo cp /etc/nginx/nginx.conf /data/nginx/conf/nginx.conf

4)、创建并运行 nginx 容器
docker run --name mynginx -d -p 81:80 -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  -v /data/nginx/logs:/var/log/nginx -d nginx
参数说明:
	-p 81:80 将容器的 80 端口映射到宿主机的 81 端口(80 已经被宿主机自己的nginx占用)
	-v /data/nginx/html:/usr/share/nginx/html 将刚才创建的挂载目录(网站文件)挂载到容器的nginx网站文件目录
	-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 将刚才创建的挂载目录(nginx配置文件)挂载到容器的nginx配置文件
	-v /data/nginx/logs:/var/log/nginx 将刚才创建的挂载目录(log目录)挂载到容器的nginx log目录
	-d 容器作为后台运行

5)、确认
	docker ps
	CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
	ec2a48d62544        nginx                  "nginx -g 'daemon of…"   6 seconds ago       Up 5 seconds        0.0.0.0:81->80/tcp       mynginx

4、验证

1)、宿主机自己的 nginx(端口:80)
	http://192.168.1.192

ubuntu 18.04 docker 学习经历(二)Docker nginx-LMLPHP

2)容器 mynginx(端口:81)
	http://192.168.1.192:81/

ubuntu 18.04 docker 学习经历(二)Docker nginx-LMLPHP

** 这里只验证 html 脚本,不处理 php 脚本
** php 脚本网站放在 Docker php 学习里面处理

5、进入容器修改脚本

docker exec -it mynginx bash

root@ec2a48d62544:/# ls
bin  boot  dev	etc  home  lib	lib64  media  mnt  opt	proc  root  run  sbin  srv  sys  tmp  usr  var

cd /usr/share/nginx/html
root@ec2a48d62544:/usr/share/nginx/html# ls
	index.html  index.php  info.php

apt update
apt install vim

修改一下 index.html 再来测试
http://192.168.1.192:81/

ubuntu 18.04 docker 学习经历(二)Docker nginx-LMLPHP

其实,直接修改 /data/nginx/html/ 的 index.html,结果是一样的!
12-31 10:46