1、写在前面的话
学习整个docker的环境,网络,原理,而不是浅尝辄止的docekr run一个镜像,然后就装着自己很diao的样子
2、学习目的
- 1)docker的服务通讯原理是什么?
docker client和docker server服务启动之后,通过api进行rest接口访问,提供服务
- 2)docker如何设置网络代理?
了解docker的配置文件/etc/sysconfig/docker和/usr/lib/systemd/system/docker.service,然后知道docker的网络代理和linux的网络代理之间的区别
- 3)docker做为服务运行,如何查看日志?
Docker的日志文件写入到 /var/log/message里,使用命令:tail -f /var/log/message | grep docker
3、学习内容
3.1、docker使用
docker可能因为版本不同,在使用的时候也不同
- systemctl disable firewalld
- yum -y install iptables-services
- systemctl enable iptables
- systemctl start iptables
3.2、docker网络
1)docker version 可以查看到client和server的版本,内部真实的接口调用就是通过rest风格API进行调用的
2) ip addr 可以查看docekr在当前虚机构建使用了一个 172.17.42.1/16的虚拟网桥,该IP地址为docker内部网络使用(只能在该机器上使用)
3)docker 配置文件:/etc/sysconfig/docker
- -H=unix:///var/run/docker.sock 在本地开启一个socket提供服务
- -H=tcp://0.0.0.0:2375 如果希望外部进行接口访问,配置开启tcp服务
- 下面是代理的设置:docker进行上网下载东西的时候,linux本身的代理是不够使用的,要独立进行配置代理
http_proxy=xxxxx:8080
https_proxy=xxxxxx:8080
4)docker作为demon服务的配置地址:/usr/lib/systemd/system/docker.service
5)进行docker服务查询日志
- tail -f /var/log/message | grep docker
- 进行镜像查询的时候,查看docker日志,观察报错:当前是没有配置镜像代理,网络报错
6)docker 常用命令
- 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
docker run --name mynginx -d nginx:latest
- 使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
docker run -P -d nginx:latest
- 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
docker run -p 80:80 -v /data:/data -d nginx:latest
- 绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
- 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
runoob@runoob:~$ docker run -it nginx:latest /bin/bash
root@b8573233d675:/#
- docker create/start/stop/pause/unpause 容器生命周期相关指令
- Mysql镜像命令举例










网友评论