安裝
https://docs.docker.com/install/linux/docker-ee/centos/#repo-install-and-upgrade
sudo yum -y install docker-ee docker-ee-cli containerd.io
sudo systemctl start docker
測試
sudo docker run hello-world
docker ps -a
OK!安裝成功……
基礎
這裡可以通過docker help擷取docker指令
具體指令則可以通過docker CMD --help方式檢視,如
docker start --help
指令 | 作用 |
docker images | 檢視已有的鏡像 |
docker run containerName | 運作 |
docker logs containerName/containerId | 動态檢視容器日志 |
docker stop containerName/containerId | 關閉容器 |
docker start containerName/containerId | 啟動容器 |
docker restart containerName/containerId | 重新開機容器 |
docker rm –f containerName/containerId | 删除容器 |
docker rmi -f IMAGE_ID/ REPOSITORY:TAG | 删除鏡像 |
docker search images_name | 檢視鏡像清單 |
docker pull images_name | 從公網拉取一個鏡像 |
docker command --help | 檢視幫助 |
docker port containerId | 看容器的端口映射情況 |
docker ps | 檢視正在運作的容器 |
docker ps -a | 檢視所有的容器 |
docker exec -it containerId /bin/bash | 進入容器 |
docker network ls | 檢視docker網絡 |
docker top containerName | 檢視容器pid |
文檔
http://www.dockerinfo.net/document
https://docs.docker.com/storage/
容器與鏡像
https://www.cnblogs.com/bethal/p/5942369.html
搭建第一個Docker容器
因為在下載下傳官方鏡像點的鏡像國内通路速度太慢,是以先進行修改
vim /etc/docker/daemon.json
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
然後重新開機守護程序
sudo systemctl daemon-reload
sudo systemctl restart docker
下載下傳鏡像
下載下傳所需鏡像
docker pull ubuntu
docker pull django
docker pull haproxy
docker pull redis
因為現在是同一主機下搭建容器應用棧的環境,是以隻需要完成容器的互聯來實作容器間的通信即可,這裡采用docker run的--link指令來建立容器間的互聯關系
啟動容器
啟動redis容器
docker run -td --name redis-master docker.io/redis /bin/bash
docker run -td --name redis-slave1 --link redis-master:master docker.io/redis /bin/bash
docker run -td --name redis-slave2 --link redis-master:master docker.io/redis /bin/bash
啟動django容器
docker run -td --name APP1 --link redis-master:db -v ~/Projects/Django/App1:/usr/src/app docker.io/django /bin/bash
docker run -td --name APP2 --link redis-master:db -v ~/Projects/Django/App2:/usr/src/app docker.io/django /bin/bash
啟動haproxy
docker run -td --name HAProxy --link APP1:APP1 --link APP2:APP2 -p 6301:6301 -v ~/Projects/HAProxy:/tmp docker.io/haproxy /bin/bash
容器節點配置
主節點配置
首先找到redis-master的挂載目錄,然後進入
docker inspect redis-master | grep Mounts -A 10
cd /var/lib/docker/volumes/210ce5e367863f3e59ab2faefba18902c89fe0b677760465099085b2abf50c18/_data
先看下redis-master的容器IP
docker inspect --format '{{ .NetworkSettings.IPAddress }}' redis-master
新開一個終端,下載下傳并解壓redis
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar -zxvf redis-5.0.7.tar.gz
修改redis.conf檔案
bind 172.17.0.2
deamonize yes
pidfile /var/run/redis.pid
将redis.conf檔案copy進該目錄中:
此時在docker容器中redis目錄下也會出現相應的redis.conf檔案
docker exec -it 490 /bin/bash
将它copy到redis工作目錄并啟動
cp redis.conf /usr/local/bin/
cd /usr/local/bin/
redis-server redis.conf
上面就是Redis Master容器節點的配置
從節點配置
首先找到redis-slave1的挂載目錄,然後進入
docker inspect redis-slave1 | grep Mounts -A 10
cd /var/lib/docker/volumes/778d408ad5df0a2e3fc9f4a79835a337d4a488ed060f741ecda3550c5025bd4b/_data/
跟上面master拷貝redis.conf檔案的方式相同,然後修改配置檔案
bind 172.17.0.3
deamonize yes
pidfile /var/run/redis.pid
slaveof master 6379
進入容器
docker exec -it redis-slave2 /bin/bash
啟動redis
cp redis.conf /usr/local/bin/
cd /usr/local/bin/
redis-server redis.conf
redis-cli -h 172.17.0.3 -p 6379
打開新的終端測試主從
docker exec -it redis-master /bin/bash
cd /usr/local/bin/
redis-cli -h 172.17.0.2 -p 6379
OK~~~Redis主從可以了另一個從步驟相同!!!