1.先上传自己定义网站服务
[root@docker ~]# ls
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.48.tar.gz jiaoben1765
[root@docker ~]# mkdir -p /var/www/html
[root@docker ~]# cp -r jiaoben1765/* /var/www/html/
[root@docker ~]# ls /var/www/html/
css img index.html js
[root@docker ~]#
2 复制一个nginx配置文件
[root@docker nginx]# cd
[root@docker ~]# mkdir /config
[root@docker ~]# cp -r /etc/nginx/* /config/
[root@docker ~]# ls /config/
conf.d koi-utf scgi_params
default.d koi-win scgi_params.default
fastcgi.conf mime.types uwsgi_params
fastcgi.conf.default mime.types.default uwsgi_params.default
fastcgi_params nginx.conf win-utf
fastcgi_params.default nginx.conf.default
[root@docker ~]# yum -y remove nginx
3 创建一个数据卷提供网站服务
[root@docker ~]# docker run -it --name html -v /var/www/html:/usr/share/nginx/html busybox
/ # ls /usr/share/nginx/html/
css img index.html js
/ #
4 创建一个数据卷提供配置文件
[root@docker ~]# docker run -d --name nginx_config --volumes-from html -v /config/:/etc/nginx busybox
/ # ls /etc/nginx/
conf.d koi-utf scgi_params
default.d koi-win scgi_params.default
fastcgi.conf mime.types uwsgi_params
fastcgi.conf.default mime.types.default uwsgi_params.default
fastcgi_params nginx.conf win-utf
fastcgi_params.default nginx.conf.default
/ #
/ # ls /usr/share/nginx/html/
css img index.html js
/ #
5 创建一个nginx容器来进行测试
[root@docker ~]# docker run -itd -P --name web --volumes-from nginx_config f652ca386ed1
f48f8664580105962bc1f9472ccb1f60d0a6a1a11f5c76b89f120a718e5acaf5
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f48f86645801 f652ca386ed1 "/docker-entrypoint.…" 13 seconds ago Up 12 seconds 0.0.0.0:49154->80/tcp, :::49154->80/tcp web
d479e855736e busybox "sh" 32 minutes ago Up 32 minutes nginx_config
[root@docker ~]#
我们通过IP和添加映射的到本机的端口进行访问测试
6 我们再写一个自己的测试页面
在本机修改和容器映射的网站文件
[root@docker ~]# cd /var/www/html/
[root@docker html]# ls
css img index.html js
[root@docker html]# mv index.html a.html
[root@docker html]# vi index.html
[root@docker html]# cat index.html
This is test page!!!
[root@docker html]#
再次测试访问
[root@docker html]# mkdir test
[root@docker html]# ls
a.html css img index.html js test
[root@docker html]# mv index.html test/
[root@docker html]# mv a.html index.html
[root@docker html]# ls
css img index.html js test
[root@docker html]#
7 在本机修改nginx配置文件(因为做了映射,所有在本机修改配置文件和html网站服务,也面都会在容器中修改)
[root@docker ~]# cd /config/
[root@docker config]# vi nginx.conf
......
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 8080;
server_name test.example.com;
location / {
root /usr/share/nginx/html/test;
index index.html;
}
}
server {
listen 80;
server_name game.example.com;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
root /usr/share/nginx/html;
index index.html;
}
......
8 此时我们再创建一个容器
//映射容器的8080到本机80,容器80到本机80端口,这杨就能通过不同的端口访问不同的网站服务
[root@docker ~]# docker run -itd -p 80:80 -p8080:8080 --name web01 --volumes-from nginx_config nginx
45d461dfc443b15317be17715fe2abc57b264a290afa3242ba6ae01152e1c316
[root@docker ~]# docker port web01
80/tcp -> 0.0.0.0:80
80/tcp -> :::80
8080/tcp -> 0.0.0.0:8080
8080/tcp -> :::8080
[root@docker ~]#
9 在通过访问不同的端口来测试web页面