docker容器一端口映射、数据管理
一、随机端口映射
- 1.后台启动nginx
- 2.网页访问
- 3.查看日志
二、指定端口映射
- 1.指定IP与端口映射
- 2.网页访问
- 3.映射多个端口
三、数据管理
1.指定容器数据挂载目录
- 1.1启动容器,指定容器的存储的目录
- 1.2查看容器数据目录挂载在本地的哪个目录
- 1.3创建文件
2.指定本地目录作为容器数据挂载目录
- 2.1启动容器,指定本机目录
- 2.创建文件测试
- 3.创建新容器,使用nginx-volulme-test2的数据存储
一、随机端口映射
1.后台启动nginx
[root@docker-server ~]# docker run -d --name nginx -P nginx
2b748f91df6c00d0689a17b77fba1760f1a431d67576a48de49a5a7d586cfb39
[root@docker-server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2b748f91df6c nginx "nginx -g 'daemon of…" 18 seconds ago Up 17 seconds 0.0.0.0:32769->80/tcp nginx
===》从进程可以看出,本地的端口32769被映射到nginx容器的80端口
2.网页访问
3.查看日志
[root@docker-server ~]# docker logs 2b748f91df6c
10.0.0.1 - - [12/Sep/2018:01:19:46 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "-"
2018/09/12 01:19:46 [error] 6#6: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 10.0.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "10.0.0.5:32769", referrer: "http://10.0.0.5:32769/"
10.0.0.1 - - [12/Sep/2018:01:19:46 +0000] "GET /favicon.ico HTTP/1.1" 404 571 "http://10.0.0.5:32769/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "-"
二、指定端口映射
1.指定IP与端口映射
[root@docker-server ~]# docker run -d -p 10.0.0.5:81:80 --name nginx-81 nginx
b5ea9e937ce68f03df45c8b71ed7569736e4b23eb5376c1014b4656074c8d5be
[root@docker-server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b5ea9e937ce6 nginx "nginx -g 'daemon of…" 23 seconds ago Up 22 seconds 10.0.0.5:81->80/tcp nginx-81
2b748f91df6c nginx "nginx -g 'daemon of…" 9 minutes ago Up 9 minutes 0.0.0.0:32769->80/tcp nginx
===》将10.0.0.5:81映射到nginx-81容器的80端口
2.网页访问
3.映射多个端口
[root@docker-server ~]# docker run -d -p 443:443 -p 82:80 --name nginxs nginx
4f6e820958f0cffda24462e1cbccd52b251764dd7b712495d47a567b8a3fc3f4
[root@docker-server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f6e820958f0 nginx "nginx -g 'daemon of…" 11 seconds ago Up 10 seconds 0.0.0.0:443->443/tcp, 0.0.0.0:82->80/tcp nginxs
b5ea9e937ce6 nginx "nginx -g 'daemon of…" 5 minutes ago Up 5 minutes 10.0.0.5:81->80/tcp nginx-81
2b748f91df6c nginx "nginx -g 'daemon of…" 14 minutes ago Up 14 minutes 0.0.0.0:32769->80/tcp nginx
三、数据管理
- 默认情况下,在容器内创建的所有文件都存储在可写容器层中。这意味着:
当该容器不再运行时,数据不会持久存在,如果另一个进程需要,则可能很难从容器中获取数据。 - 容器的可写层紧密耦合到运行容器的主机。无法轻松地将数据移动到其他位置。 写入容器的可写层需要
- 存储驱动程序来管理文件系统。存储驱动程序使用Linux内核提供联合文件系统。与使用直接写入主机文件系统的数据卷相比,这种额外的抽象降低了性能。
1.指定容器数据挂载目录
1.1启动容器,指定容器的存储的目录
[root@docker-server ~]# docker run -d --name nginx-volume-test1 -v /data/nginx nginx
66b56ee796715de421a37fef6e11fe08d00657f214a86928124f53bf15e17690
====》参数
-v 指定一个主机目录作为挂在卷
[root@docker-server ~]# docker_start nginx-volume-test1
root@66b56ee79671:/# ls -dl data/nginx/
drwxr-xr-x. 2 root root 6 Sep 12 01:51 data/nginx/
1.2查看容器数据目录挂载在本地的哪个目录
[root@docker-server ~]# docker inspect -f { {.Mounts}} nginx-volume-test1 [{volume 21e50f1f5feb058e54a9f80e86ae2e8ba9a535f138034223e0ebf7cdd38e5e52 /var/lib/docker/volumes/21e50f1f5feb058e54a9f80e86ae2e8ba9a535f138034223e0ebf7cdd38e5e52/_data /data/nginx local true }]
1.3创建文件
[root@docker-server ~]# cd /var/lib/docker/volumes/21e50f1f5feb058e54a9f80e86ae2e8ba9a535f138034223e0ebf7cdd38e5e52/_data/
[root@docker-server _data]# touch test
[root@docker-server _data]# docker_start nginx-volume-test1
root@66b56ee79671:/# ls /data/
nginx
root@66b56ee79671:/# ls /data/nginx/
test
2.指定本地目录作为容器数据挂载目录
2.1启动容器,指定本机目录
[root@docker-server _data]# docker run -d --name nginx-volume-test2 -v /data/docker-volume-nginx/:/data nginx
176e59c155773ab738763d1ae22c067b52c2714486d9efe9b3b19982e2ad1a28
2.创建文件测试
[root@docker-server _data]# touch /data/docker-volume-nginx/test2
[root@docker-server _data]# docker_start nginx-volume-test2
root@176e59c15577:/# ls /data/
test2
3.创建新容器,使用nginx-volulme-test2的数据存储
[root@docker-server _data]# docker run -d --name nginx-volume-test3 --volumes-from nginx-volume-test2 nginx
3c7814d9b8d8e83195b6fb16a2cca6d005b4e4fdee83ce2b3f9dcfb17390840f
[root@docker-server _data]# docker_start nginx-volume-test3
root@3c7814d9b8d8:/# ls /data/
test2
还没有评论,来说两句吧...