[iyunv@node1 ~]# docker logs 1822a2ea3ff3
172.16.4.81 - - [22/Aug/2017:09:20:25 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36" "-"
2017/08/22 09:20:25 [error] 5#5: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 172.16.4.81, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "172.16.7.151:32768", referrer: "http://172.16.7.151:32768/"
172.16.4.81 - - [22/Aug/2017:09:20:25 +0000] "GET /favicon.ico HTTP/1.1" 404 571 "http://172.16.7.151:32768/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36" "-" 2. 指定端口映射
docker run -p hostPort:containerPort
docker run -p ip:hostPort:containerPort
docker run -p ip::containerPort
docker run -p hostPort:containerPort:udp
-p 指定端口映射,前面的是主机端口,后面的是容器端口。
[iyunv@node1 ~]# docker run -d -p 81:80 nginx
三、数据管理
两种方式:
数据卷
数据卷容器
1. 数据卷
启动一个容器,把宿主机的某个目录挂载到容器目录上。
-v /data
-v src:dst 指定一个目录挂载进容器。
【示例1】:未指定宿主机目录挂载
[iyunv@node1 ~]# docker run -it --name volume-test1 -v /data centos
[iyunv@5d485979254b /]# ls -l /data
total 0
这个容器里的/data 肯定在宿主机的某个位置。打开一个新的终端,查看这个位置:
[iyunv@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5d485979254b centos "/bin/bash" 2 minutes ago Up 2 minutes volume-test1 test
[iyunv@node1 ~]# docker inspect 5d485979254b
在宿主机上的目录中创建文件:
[iyunv@node1 ~]# cd /var/lib/docker/volumes/7f37e83849f079275545b7d1f3381903795e946d113e1c43ff24fc1a7717e00f/_data
[iyunv@node1 _data]# ls -l
total 0
[iyunv@node1 _data]# touch test.txt
回到容器中,查看/data目录下是否有刚才创建的文件:
[iyunv@5d485979254b /]# ls -l /data
-rw-r--r--. 1 root root 0 Aug 23 02:07 test.txt 【示例2】:指定宿主机目录挂载
[iyunv@node1 ~]# docker run -it -v /opt:/opt centos
[iyunv@850031902bb7 /]# ls /opt/
ansible_playbooks rh
[iyunv@850031902bb7 /]# exit
exit
宿主机的/opt:
[iyunv@node1 ~]# ls /opt
ansible_playbooks rh
挂载的时候可以指定权限: