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  從當前行刪到行尾
相關文章
相關標籤/搜索