一、随机端口映射
1.后台启动nginx
[root@docker -server ~]
2 b748f91df6c00d0689a17b77fba1760f1a431d67576a48de49a5a7d586cfb39
[root@docker -server ~]
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2 b748f91df6c 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 2 b748f91df6c
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 ~]
b5ea9e937ce68f03df45c8b71ed7569736e4b23eb5376c1014b4656074c8d5be
[root@docker -server ~]
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
2 b748f91df6c 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
4 f6e820958f0cffda24462e1cbccd52b251764dd7b712495d47a567b8a3fc3f4
[root@docker-server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4 f6e820958f0 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
2 b748f91df6c 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 ~]
66 b56ee796715de421a37fef6e11fe08d00657f214a86928124f53bf15e17690
====》参数
-v 指定一个主机目录作为挂在卷
[root@docker -server ~]
root@66b56ee79671 :/
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 21e50 f1f5feb058e54a9f80e86ae2e8ba9a535f138034223e0ebf7cdd38e5e52 /var /lib/docker/volumes/21e50 f1f5feb058e54a9f80e86ae2e8ba9a535f138034223e0ebf7cdd38e5e52/_data /data /nginx local true }]
1.3创建文件
[root@docker -server ~]
[root@docker -server _data]
[root@docker -server _data]
root@66b56ee79671 :/
nginx
root@66b56ee79671 :/
test
2.指定本地目录作为容器数据挂载目录
2.1启动容器,指定本机目录
[root@docker -server _data]
176 e59c155773ab738763d1ae22c067b52c2714486d9efe9b3b19982e2ad1a28
2.创建文件测试
[root@docker -server _data]
[root@docker -server _data]
root@176e59c15577 :/
test2
3.创建新容器,使用nginx-volulme-test2的数据存储
[root@docker -server _data]
3 c7814d9b8d8e83195b6fb16a2cca6d005b4e4fdee83ce2b3f9dcfb17390840f
[root@docker -server _data]
root@3c7814d9b8d8 :/
test2