最新版 Docker 安裝
1.卸載 Docker
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
2.安裝所需的包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3.設(shè)置穩(wěn)定的存儲庫
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.可選:啟用邊緣和測試存儲庫
sudo yum-config-manager --enable docker-ce-edge
sudo yum-config-manager --enable docker-ce-test
禁用邊緣存儲庫
sudo yum-config-manager --disable docker-ce-edge
5.安裝最新版本的 Docker CE
sudo yum install docker-ce
6.啟動 Docker
sudo systemctl start docker
7.通過運(yùn)行 hello-world 映像驗(yàn)證是否已正確安裝
sudo docker run hello-world
docker-compose 安裝
1.下載最新版本的 Docker Compose (第一次執(zhí)行提示失敗,就多執(zhí)行幾次這個命令試試)
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
2.對二進(jìn)制文件應(yīng)用可執(zhí)行權(quán)限
sudo chmod +x /usr/local/bin/docker-compose
3.測試安裝
docker-compose --version
docker-machine 安裝
1.下載 Docker Machine 二進(jìn)制文件并將其解壓縮到 PATH (第一次執(zhí)行提示失敗娜谊,就多執(zhí)行幾次這個命令試試)
base=https://github.com/docker/machine/releases/download/v0.14.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo install /tmp/docker-machine /usr/local/bin/docker-machine
2.通過顯示機(jī)器版本來檢查安裝
docker-machine version
搭建 swarm 集群
1.新版 docker 已集成 swarm确买,無需單獨(dú)安裝
2.使用 docker swarm init 在管理節(jié)點(diǎn)初始化一個 Swarm 集群
docker swarm init --advertise-addr 192.168.153.150
# 如果你的 Docker 主機(jī)有多個網(wǎng)卡,擁有多個 IP纱皆,必須使用 --advertise-addr 指定 IP
# 執(zhí)行 docker swarm init 命令的節(jié)點(diǎn)自動成為管理節(jié)點(diǎn)
3.將其他主機(jī)作為 管理節(jié)點(diǎn) 或 工作節(jié)點(diǎn) 加入 swarm 集群(以下命令在待加入節(jié)點(diǎn)執(zhí)行)
docker swarm join --token [MANAGER-TOKEN||WORKER-TOKEN] [MANAGER-IP]:2377
# 示例:docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx 192.168.153.150:2377
--------------
注意:各機(jī)器之間要開啟以下通信端口 或 關(guān)閉防火墻
# TCP端口2377集群管理端口
# TCP與 UDP端口7946節(jié)點(diǎn)之間通訊端口
# TCP與 UDP端口4789 overlay 網(wǎng)絡(luò)通訊端口
firewall-cmd --zone=public --add-port=2377/tcp --permanent
firewall-cmd --zone=public --add-port=7946/tcp --permanent
firewall-cmd --zone=public --add-port=7946/udp --permanent
firewall-cmd --zone=public --add-port=4789/tcp --permanent
firewall-cmd --zone=public --add-port=4789/udp --permanent
firewall-cmd --reload
關(guān)閉防火墻:
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
--------------
4.在管理節(jié)點(diǎn)使用 docker node ls 查看集群
docker node ls
5.向集群中添加工作節(jié)點(diǎn)拇惋,通過以下命令獲取加入集群的 WORKER-TOKEN
docker swarm join-token worker
向集群中添加管理節(jié)點(diǎn),通過以下命令獲取加入集群的 MANAGER-TOKEN
docker swarm join-token manager
6.退出集群
(1)如果是 manager 先降級為 worker
docker node demote [HOSTNAME || ID] # ID前幾位即可
(2)退出集群
docker swarm leave
(3)移除節(jié)點(diǎn)
docker node rm [HOSTNAME || ID] # ID前幾位即可
# leave后該節(jié)點(diǎn)仍將出現(xiàn)在節(jié)點(diǎn)列表中抹剩,并將 STATUS標(biāo)記為 down,已不影響 swarm操作蓉坎;
# 要從列表中刪除非活動節(jié)點(diǎn)澳眷,使用 node rm 命令即可。
使用 swarm+compose 部署集群服務(wù)
1.使用 swarm+compose 部署服務(wù)
docker stack deploy -c docker-compose.yml [JIQUN-NAME]
2.查看服務(wù)
docker stack ls
3.移除服務(wù)
docker stack down [JIQUN-NAME]
# 該命令不會移除服務(wù)所使用的 數(shù)據(jù)卷蛉艾,如果你想移除數(shù)據(jù)卷請使用 docker volume rm
其他 Docker 常用命令
查看 swarm 集群中的服務(wù):docker service ls
查看 swarm 集群中某個服務(wù)的運(yùn)行狀態(tài)信息:docker service ps mwp_db
查看 swarm 集群中某個服務(wù)的基礎(chǔ)詳細(xì)信息:docker service inspect mwp_db
查看 swarm 集群中某個服務(wù)的日志:docker service logs mwp_db
從 swarm 集群中移除某個服務(wù):docker service rm mwp_db
搜索倉庫鏡像:docker search nginx
查找本地鏡像:docker images nginx
查看本地鏡像列表:docker images 或 docker image ls
刪除本地鏡像:docker rmi [IMAGE ID]
強(qiáng)制刪除本地鏡像:docker rmi -f [IMAGE ID] # 一般先停止相關(guān)容器钳踊,再 docker rmi [IMAGE ID] 正常刪除鏡像
列出本機(jī)容器 container:docker ps -a 或 docker container ls
刪除 container:docker rm [CONTAINER ID] 或 docker container rm [CONTAINER ID]
清理所有處于終止?fàn)顟B(tài)的容器:docker container prune
進(jìn)入后臺運(yùn)行的容器 container:docker exec -it [CONTAINER_NAME || CONTAINER_ID] /bin/sh
# docker exec 進(jìn)入容器后 exit 不會導(dǎo)致容器停止
創(chuàng)建一個新的容器并運(yùn)行:docker run --name web2 -d -p 81:80 nginx:v2
停止一個運(yùn)行中的容器:docker stop [CONTAINER ID || NAMES]
查看所有數(shù)據(jù)卷:docker volume ls
刪除指定數(shù)據(jù)卷:docker volume rm [VOLUME NAME]
清理所有無主數(shù)據(jù)卷:docker volume prune
查看 Image 或 Container 的信息:docker inspect [IMAGE || IMAGE ID || CONTAINER ID]
查看 CentOS 系統(tǒng)內(nèi)核版本:uname -r
使用 Dockerfile 定制鏡像:docker build -t nginx:v3 [DOCKERFILE PATH || URL]
# 其中 [DOCKERFILE PATH || URL] 為 Dockerfile 文件所在目錄,例:docker build -t nginx:v3 .
更多命令可參考:http://www.runoob.com/docker/docker-command-manual.html
配置 Docker 加速器
參考:https://yeasy.gitbooks.io/docker_practice/install/mirror.html
對于使用 systemd 的系統(tǒng)勿侯,在 /etc/docker/daemon.json 中寫入如下內(nèi)容(如果文件不存在則新建該文件)
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
之后重新啟動服務(wù)拓瞪。
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
檢查加速器是否生效:docker info
Registry Mirrors:
https://registry.docker-cn.com/
Docker hub 地址:https://hub.docker.com/
Docker 官方文檔地址:https://docs.docker.com/
廣告:沼氣池