- 链接">一、docker方式安装httpbin链接
- 二、docker方式安装nginx
- 三、其他
- docker四种网络模式区别 链接
- 链">docker 常用命令链
- 接">接
- docker 参数说明
一、docker方式安装httpbin链接
docker pull kennethreitz/httpbin
docker run -d -p 6001:80 --name httpbin --restart=always kennethreitz/httpbin:latest
宿主机的port是6001,然后映射到docker容器中的httbin监听的80端口
二、docker方式安装nginx
1、nginx挂载目录说明
nginx.conf nginx的主配置文件;conf主配置文件目录,nginx.conf文件路径/etc/nginx/nginx.conf
default.conf nginx虚拟主机配置文件,conf.d 虚拟主机配置文件目录,default.conf文件路径/etc/nginx/conf.d/default.conf
index.html nginx主页,html主页目录路径/usr/share/nginx/html
logs 日志目录,目录/var/log/nginx
2、拷贝配置文件到宿主机
在宿主机创建挂载目录:mkdir -p /nginx/{conf,conf.d,html,logs}
启动nginx :docker pull nginx ; docker run -i -t nginx /bin/bash
拷贝 nginx.conf : docker cp ID:/etc/nginx/nginx.conf /nginx/conf
拷贝default.conf: docke cp ID:/etc/nginx/conf.d/default.conf /nginx/conf.d
拷贝 index.html : docke cp ID:/usr/share/nginx/html /nginx/html
3、配置nginx反向代理
在conf.d中新增配置 :vi xxx.xxcode.ink.conf(域名已解析)
server {
listen 80;
server_name 访问域名xxx.xxcode.ink;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://宿主机公网ip:httpbin端口/get;
}
}
3、启动nginx,挂载目录
删除已启动的nginx:docker ps -a ;docker stop nginx ; docker rm nginx
docker run --net=host -d -p 80:80 --name nginx \
-e "TZ=Asia/Shanghai" \
-v /nginx/html:/usr/share/nginx/html \
-v /nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /nginx/logs:/var/log/nginx \
-v /nginx/conf.d/:/etc/nginx/conf.d \
nginx
4、防火墙开启80端口
查询已开放端口:
firewall-cmd --list-ports
开发80端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
提示 success后重新加载 Firewalld:
firewall-cmd --reload
三、其他
docker四种网络模式区别链接
1.host模式
host表示容器共享宿主机的ip和端口号。容器中不会虚拟自己的网卡和ip,当你查看容器ip的时候,其实是宿主机的ip。
如:创建nginx容器
docker run -tid --net=host --name nginx nginx:1.13.12
你访问主机的http://ip:80其实就是容器的80端口,不用做端口映射了。
2.Container模式(未测试)
container是共享容器ip地址和端口
docker run -tid --net=container:nginx --name mysql mysql:5.7
3.None模式
使用none模式时容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等
docker run -tid --net=none --name nginx2 nginx:1.13.12
4.bridge模式
bridge模式是docker默认的网络模式,这种模式容器直接可以互相通讯,但无法和宿主机通讯。
注:bridge不支持自定义容器ip
如: docker run -itd --net bridge --ip 172.18.0.10 nginx:latest /bin/bash
会报错:
docker: Error response from daemon: User specified IP address is supported on user defined networks only.
跨主机通信:
直接路由方式、桥接方式(如pipework)、Overlay隧道方式(如flannel、ovs+gre)
docker 常用命令链
接
下载镜像:doker pull Name:Tags
进入到docker容器:docker exec -it ID/NAME /bin/bash /bin/sh 是固定写法
查看所有容器,包括关闭的:docker ps -a
镜像管理 :docker image ls(查看已下载镜像)
删除镜像:docker rmi Name
删除容器:docker stop ID ;docker rm ID
在新容器中执行命令:docker run
在 Docker Hub 中搜索镜像 :docker search
docker 参数说明
docker重启时自动重启容器: —restart=always
容器命名:—name Name