【kodbox】
mkdir /kodbox
docker run -d --name kodbox -p 81:80 -v /kodbox:/var/www/html --link mysql:mysql --restart=always kodcloud/kodbox
【mysql】
docker run -d --name mysql \
-v /root/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=chd1001cjw \
-p 3307:3306 \
--restart=always \
mysql:5
【ccaa】
docker run --name="ccaa" -d -p 88:6080 -p 6081:6081 -p 6800:6800 -p 51413:51413 \
-v /kodbox/data/files/Download:/data/ccaaDown \
-e PASS="chd1001cjw" \
helloz/ccaa \
sh -c "dccaa pass && dccaa start"
【流量转发】
wget --no-check-certificate -qO natcfg.sh http://www.arloor.com/sh/iptablesUtils/natcfg.sh && bash natcfg.sh
【blog】
1、使用docker搭建typecho
docker run -d --name=typecho --restart always -e PHP_TZ=Asia/Shanghai -e PHP_MAX_EXECUTION_TIME=600 -v /root/typecho:/data -p 83:80 80x86/typecho:latest
2、进入docker容器内
docker exec -it mytypecho sh
3、修改config,使支持https
vi /app/config.inc.php
最下面加上如下内容:
/* 开启HTTPS /
define('__TYPECHO_SECURE__',true);
4、退出容器
exit
【nginx】 /data/solution用于存放网站项目,也是为了数据与容器分离
mkdir -p /data/nginx/conf.d
docker run -p 80:80 -p 443:443 --mount type=bind,source=/data/nginx/conf.d,target=/etc/nginx/conf.d --mount type=bind,source=/data/solution,target=/data/solution --restart=always -d --name nginx nginx
【容器间通讯】
使用自定义bridge网络
除了默认的bridge网络,官方推荐用户自定义一个bridge网络用作生产环境,用户自定义的bridge网络不仅支持ip访问,还支持直接使用容器名称进行访问,官方推荐使用在生产环境,因此我们会使用这种方式进行容器间的通信。
创建一个自定义网络,名字可以随意,如typecho。
docker network create typecho
打印一下当前的network,可以看到typecho已经存在了。
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
429eabf557a3 bridge bridge local
3f47e77c0ded host host local
3784484fb92e typecho bridge local
7ff63bc6d9bd none null local
2.容器使用自定义的网络
如果容器尚未创建,可以在docker run命令时通过--network参数来指定网络,如
docker run -d --name mynginx --network typecho nginx
如果容器已经在运行了,我们也可以通过docker network connect ${网络名} ${容器名}来指定,在上面我们已经运行了mariadb,php-fpm,nginx,所以现在依次为他们都绑定到typecho网络中。
docker network connect typecho mariadb
docker network connect typecho php-fpm
docker network connect typecho nginx
检查一下绑定到typecho网络的容器
$ docker network inspect typecho
[
{
"Name": "typecho",
"Id": "3784484fb92e36c1448d2303af1b8bdce680e2cba0452fca354cefb6cb81bb54",
"Created": "2019-12-08T08:32:57.299750734-05:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"6c644a890f3d1e7cc9e846236b6467ac31084470289fba5f6af1c2c1a0171e8e": {
"Name": "mariadb",
"EndpointID": "881c4f00a8d15f4e941d50faf53846a3ab8f15772fccc5e8c568e8d97b346b3b",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
},
"f98355c7b220c0ab2897aa2478037e3322d78ccd81518af7a4756b07e1e26719": {
"Name": "nginx",
"EndpointID": "f14e5c36fcfe7ac5f26b8495335366957b6d7ab6d59c13e55cae2f1dc7751929",
"MacAddress": "02:42:ac:12:00:04",
"IPv4Address": "172.18.0.4/16",
"IPv6Address": ""
},
"f9cb6cfcebf6f82beca76d3061765c1deb482a9c3c30d0c6d3644fe10ae40e3e": {
"Name": "php-fpm",
"EndpointID": "c4a2e26fe887e04f01a36eea9771eb2e817ef29d1bd7c435b380a7ca18485e64",
"MacAddress": "02:42:ac:12:00:03",
"IPv4Address": "172.18.0.3/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}]
可以看到mariadb,php-fpm,nginx都已经连接到typecho网络了。这样,我们在nginx容器,就可以直接通过php-fpm的名字来调用php的服务了。
评论