docker-compose

# 重启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  从当前行删到行尾
相关文章
相关标签/搜索