Centos7离线安装docker及docker-compose

好久没更新了,因为近期的总结都写在语雀上,这次在同步一下内容。下面进入正题:

之前都是线上直接下载安装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

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: {} (每一行空两格)

你可能感兴趣的:(Centos7离线安装docker及docker-compose)