码迷,mamicode.com
首页 > 其他好文 > 详细

docker-compose

时间:2019-09-04 13:41:00      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:tcp   star   clust   efault   pos   ice   etc   system   ade   

# 重启docker, 容器不死
方法1: docker run -d --restart=always nginx:latest
systemctl restart docker
方法二: 默认所有容器都起,修改配置文件
/etc/docker/daemon.json
{
    "registry-mirrors":["http://b7a9017d.m.caocloud.io"],
    "insecure-registries":["10.0.0.7:5000"],
    "live-restore":true
}

Docker 的几种网络类型

# docker container inspect 可以查看网络类型
# docker network ls
none: 不为容器配置任何网络功能 --net=none
bridge: docker 默认的网络类型(桥接模式)
hosts : 和宿主机共享网络
container: 与另一个运行中的容器共享network namespace 
docker run -it --network container:容器ID  

跨主机网络通讯 macvlan

默认一个屋里网卡,只有一个屋里地址,虚拟多个mac地址
# 创建macvlan网络
docker network create --driver macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.254 -o parent=eth0 macvlan_1  # 在两台虚拟机都执行
# ubanto 需要设置混杂模式(不是自己的数据包也接收)
# ip link set eth1 promisc on 
# 创建使用macvlan网络的容器
docker run -it --network macvlan_1 --ip=10.0.0.101 镜像  # 虚拟机1
docker run -it --network macvlan_1 --ip=10.0.0.102 镜像  # 虚拟机2

'''
本地shell 
ssh root@10.0.0,102 也可以进入容器中
'''

跨主机通信之 overlay

1. 准备工作
docker01 
docker run -d -p 8500:8500 --restart=always -h consul --name consul progrium/consul -server -bootstrap
设置容器主机名
consul: key,value 类型的存储数据库

docker01, 02 修改
vim /etc/docker/daemon.json
{
    "hosts":["tcp://0.0.0.0:2376","unix:///var/run/docker.socket"],
    "cluster-store":"consul://10.0.0.7:8500",
    "cluster-advertise":"10.0.0.11:2367"
}
vim /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker
2. 创建overlay 网络
docker network create -d overlay --subnet 172.16.1.0/24 --gate 172.16.1.254 ol1   # global网络
3. 启动容器测试
docker run -it --network ol1 --name octivia -h octivia centos6.9_ssh_nginx:v3
# 容器间可以相互ping通

应用要被外界访问,使用端口映射

docker-compose(单机版的容器编排工具)

# 一次起多个容器
yum install -y python2-pip # 需要epel源
pip install docker-comose  # 清华源pypi 加速
# 新建目录/opt/wordpress
vim docker-compose.yml
version: '3'
配置要启动的容器  # 没有的话自动pull

# docker-compose up 进行启动
docker-compose up -d  # 后台运行
docker-compose up --scale  wordpress=3 #起了三个,可以做负载均衡

# 配置负载均衡
yum install nginx -y
另一台服务器起nginx 挂三个wordpress
nginx 还需要做端口映射
-- # nginx 文件最小化
grep -Ev '^$|#' /etc/nginx/nginx.conf.default >/etc/nginx/nginx.conf
upstream wordpress {
    server 10.0.0.7:33213;
    server 10.0.0.7:33214;
    server 10.0.0.7:33215;
}
location / {
    proxy_pass http://wordpress; 
    proxy_set_header Host $host;
}
# 查看负载均衡
找到持久化的卷,添加文件info.php
cd /var/lib/docker/volumes/wordpress_web_data/_data/
vim info.php
<?php phpinfo(); ?>
访问 10.0.0.7/info.php  # 刷新每次的ip地址不同,即实现了负载均衡
 

其他命令

vim 快捷键
dgg  从当前行删到开头
dG  从当前行删到行尾

docker-compose

标签:tcp   star   clust   efault   pos   ice   etc   system   ade   

原文地址:https://www.cnblogs.com/Afrafre/p/11458357.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!