好久没更新了,因为近期的总结都写在语雀上,这次在简书同步一下内容。下面进入正题:
之前都是线上直接下载安装docker,近期有个项目需要用docker部署,恰巧人家用的是离线安装,所以写点东西记录一下。由于还没得空一步一步去实践,所以有些地方写的略微模糊哈。
注:内核 3.10以上可以安装docker (查看内核版本 uname -r),centos6 无法安装(内核版本低)
一.离线安装docker
1.到官网下载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是环境变量目录,在任意目录下都执行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 可执行权限,并设置开机自启
# 赋予可执行权限
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 文件配置中创建并启动所有服务。一句话 docker-compose 是用来做docker的多容器控制的,是一个用来把docker自动化的东西。
2.安装:下载二进制包 GitHub下载地址(1.24.1稳定版),并上传至服务器/usr/local/bin/目录下,赋予可执行权限:chmod +x /usr/local/bin/docker-compose
3.创建软链接
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定义应用程序的环境,以便可以在任何地方复制。
2)在docker-compose.yml 中定义组成应用程序的服务,所以它们可以在一个孤立的环境中运行
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: {} (每一行空两格)