好久沒更新了露氮,因為近期的總結都寫在語雀上昭齐,這次在簡書同步一下內容。下面進入正題:
之前都是線上直接下載安裝docker诀豁,近期有個項目需要用docker部署窄刘,恰巧人家用的是離線安裝,所以寫點東西記錄一下舷胜。由于還沒得空一步一步去實踐娩践,所以有些地方寫的略微模糊哈。
注:內核 3.10以上可以安裝docker (查看內核版本 uname -r),centos6 無法安裝(內核版本低)
一.離線安裝docker
1.到官網(wǎng)下載Docker安裝包(二進制)
下載地址 (docker-19.03.1.tgz)
2.將下載好的docker-19.03.1.tgz 上傳至服務器 并解壓:tar -zxvf docker-19.03.1.tgz
3.進入docker目錄翻伺,復制所有文件到/usr/bin目錄下(/usr/bin是環(huán)境變量目錄材泄,在任意目錄下都執(zhí)行docker命令)cp docker/* /usr/bin/
4.將docker添加到守護進程
新建docker.service文件 vim /etc/systemd/system/docker.service
# 添加內容如下:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
5.賦予docker.service 可執(zhí)行權限,并設置開機自啟
# 賦予可執(zhí)行權限
chmod +x /etc/systemd/system/docker.service
#設置開機自啟
systemctl enable docker.service</pre>
6.啟動docker服務:systemctl start docker
7.docker的配置文件:默認位置/etc/docker/daemon.json穆趴。 –config-file 可用于指定非默認位置脸爱。修改后需要重啟docker遇汞。
{
"registry-mirrors":[
"[https://registry.docker-cn.com](https://registry.docker-cn.com/)",
"[https://dockerhub.azk8s.cn](https://dockerhub.azk8s.cn/)",
"[https://gcr.azk8s.cn](https://gcr.azk8s.cn/)",
"[https://quay.azk8s.cn](https://quay.azk8s.cn/)"
],
"insecure-registries":[
"gcr.azk8s.cn",
"dockerhub.azk8s.cn",
"quay.azk8s.cn",
"registry.docker-cn.com",
"index.docker.io"
],
"max-concurrent-downloads":3,
"log-driver":"json-file",
"log-opts":{
"max-size":"100m",
"max-file":"1"
},
"max-concurrent-uploads":3,
"storage-driver":"overlay2",
"storage-opts":[
"overlay2.override_kernel_check=true"
],
"live-restore":true,
"exec-opts":[
"native.cgroupdriver=systemd"
],
"graph":"/home/docker"
}
重啟docker:systemctl restart docker
二.安裝docker-compose
1.docker-compose:Compose 是用于定義和運行多容器 Docker 應用程序的工具未妹。通過 Compose,您可以使用 YML 文件來配置應用程序需要的所有服務空入。然后络它,使用一個命令,就可以從 YML 文件配置中創(chuàng)建并啟動所有服務歪赢。一句話 docker-compose 是用來做docker的多容器控制的化戳,是一個用來把docker自動化的東西。
2.安裝:下載二進制包 GitHub下載地址(1.24.1穩(wěn)定版)埋凯,并上傳至服務器/usr/local/bin/目錄下点楼,賦予可執(zhí)行權限:chmod +x /usr/local/bin/docker-compose
3.創(chuàng)建軟鏈接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
測試是否安裝成功
docker-compose --version
docker-compose version 1.24.1, build 4667896b
4.docker-compose的使用:
基本使用分三個步驟
1)用Dockerfile定義應用程序的環(huán)境,以便可以在任何地方復制白对。
2)在docker-compose.yml 中定義組成應用程序的服務掠廓,所以它們可以在一個孤立的環(huán)境中運行
3)運行 docker-compose up 和Compose啟動并運行整個應用程序。(后臺運行命令:docker-compose up -d
)
docker-compose.yml 標準格式:
version: "3.8"
services:
web: #運行的服務1:web
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links: #與哪個容器進行相連
- redis
redis: #運行的服務2:redis
image: redis
volumes:
logvolume01: {} (每一行空兩格)