# 重啓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 從當前行刪到行尾