Docker使用数据卷提供配置文件(提供不同的配置文件来访问不同web的页面)

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]# 

再次测试访问

Docker使用数据卷提供配置文件(提供不同的配置文件来访问不同web的页面)_第1张图片

[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页面

Docker使用数据卷提供配置文件(提供不同的配置文件来访问不同web的页面)_第2张图片

你可能感兴趣的:(运维,Linux系统,docker,nginx,运维)