Docker安装配置

Docker/Docekr-Compose安装配置

一、Docker安装及卸载

1.Ubuntu-repository安装

  • 更新apt包索引并安装包以允许apt通过 HTTPS 使用存储库
1
2
3
4
5
6
7
8
sudo apt-get update

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  • 添加Docker GPG key
1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  • 添加docker.list

官方源

1
2
3
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

清华源

1
2
3
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

阿里源

1
2
3
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 安装
1
2
3
 sudo apt-get update

 sudo apt-get install docker-ce docker-ce-cli containerd.io
  • 卸载

卸载安装包

1
sudo apt-get purge docker-ce docker-ce-cli containerd.io

删除所有镜像、容器和卷

1
2
3
sudo rm -rf /var/lib/docker

 sudo rm -rf /var/lib/containerd

2.Ubuntu-deb安装

  • 下载deb包

https://download.docker.com/linux/ubuntu/dists/

  • 安装
1
sudo dpkg -i /path/to/package.deb

3.Centos安装

  • 安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定存储库。
1
2
3
4
# 卸载之前安装的版本
yum remove docker docker-common docker-selinux docker-engine
 
yum install -y yum-utils

官方源

1
2
3
 yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo

清华源

1
2
3
4
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

阿里源

1
2
3
yum-config-manager \
  --add-repo \
  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 安装 Docker 引擎
1
2
yum makecache fast
yum install docker-ce

二、Docker配置

1.使用非root用户管理docker

a. 创建 docker 用户组.

$ sudo groupadd docker

b. 将当前用户添加进 docker 用户组.

$ sudo usermod -aG docker $USER

c. 重启/注销重新登陆生效。

在 Linux 上,您还可以运行以下命令来激活对组的更改

$ newgrp docker 

d. 测试不用 sudo运行docker .

$ docker run hello-world

2.配置镜像源

针对Docker客户端版本大于 1.10.0 的用户

1
sudo vim /etc/docker/daemon.json

阿里

ID获取: 阿里云控制台-容器镜像服务-镜像加速器
https://<你的ID>.mirror.aliyuncs.com

1
2
3
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}

3.配置数据储存位置

1
2
3
4
{
  "data-root": "/srv/docker-data",
  "storage-driver": "overlay2"
}

4.配置网络

docker网络模式:

  • bridge 可以自定义网桥并配置固定ip

  • none 无指定网络

  • host 使用宿主机网络端口

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13

# 创建自定义网桥及配置IP网段, --subnet 可自定义配置所有(保留IP地址)

docker network create --subnet=x.x.x.0/24 netBridgeName(自定义网桥名称)
# 创建容器且指定网络IP

docker run -itd --name [containerName] --network=netBridgeName --ip x.x.x.2 [image]

# 查看docker下网络模式
docker network list

# 删除docker下的网络(删除创建的网桥)
docker rm netBridgeName

5.配置DNS

1
2
3
{
  "dns": ["8.8.8.8", "8.8.4.4"]
}

6. 配置远程访问

1
2
3
{
  "hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"]
}
1
2
sudo systemctl daemon-reload
sudo systemctl restart docker
1
2
# 重启docker后查看配置完成端口是否运行
sudo netstat -lntp | grep dockerd

7.其他配置参数

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
{
  "allow-nondistributable-artifacts": [],
  "api-cors-header": "",
  "authorization-plugins": [],
  "bip": "",
  "bridge": "",
  "cgroup-parent": "",
  "cluster-advertise": "",
  "cluster-store": "",
  "cluster-store-opts": {},
  "containerd": "/run/containerd/containerd.sock",
  "containerd-namespace": "docker",
  "containerd-plugin-namespace": "docker-plugins",
  "data-root": "",
  "debug": true,
  "default-address-pools": [
    {
      "base": "172.80.0.0/16",
      "size": 24
    },
    {
      "base": "172.90.0.0/16",
      "size": 24
    }
  ],
  "default-cgroupns-mode": "private",
  "default-gateway": "",
  "default-gateway-v6": "",
  "default-runtime": "runc",
  "default-shm-size": "64M",
  "default-ulimits": {
    "nofile": {
      "Hard": 64000,
      "Name": "nofile",
      "Soft": 64000
    }
  },
  "dns": [],
  "dns-opts": [],
  "dns-search": [],
  "exec-opts": [],
  "exec-root": "",
  "experimental": false,
  "features": {},
  "fixed-cidr": "",
  "fixed-cidr-v6": "",
  "group": "",
  "hosts": [],
  "icc": false,
  "init": false,
  "init-path": "/usr/libexec/docker-init",
  "insecure-registries": [],
  "ip": "0.0.0.0",
  "ip-forward": false,
  "ip-masq": false,
  "iptables": false,
  "ip6tables": false,
  "ipv6": false,
  "labels": [],
  "live-restore": true,
  "log-driver": "json-file",
  "log-level": "",
  "log-opts": {
    "cache-disabled": "false",
    "cache-max-file": "5",
    "cache-max-size": "20m",
    "cache-compress": "true",
    "env": "os,customer",
    "labels": "somelabel",
    "max-file": "5",
    "max-size": "10m"
  },
  "max-concurrent-downloads": 3,
  "max-concurrent-uploads": 5,
  "max-download-attempts": 5,
  "mtu": 0,
  "no-new-privileges": false,
  "node-generic-resources": [
    "NVIDIA-GPU=UUID1",
    "NVIDIA-GPU=UUID2"
  ],
  "oom-score-adjust": -500,
  "pidfile": "",
  "raw-logs": false,
  "registry-mirrors": [],
  "runtimes": {
    "cc-runtime": {
      "path": "/usr/bin/cc-runtime"
    },
    "custom": {
      "path": "/usr/local/bin/my-runc-replacement",
      "runtimeArgs": [
        "--debug"
      ]
    }
  },
  "seccomp-profile": "",
  "selinux-enabled": false,
  "shutdown-timeout": 15,
  "storage-driver": "",
  "storage-opts": [],
  "swarm-default-advertise-addr": "",
  "tls": true,
  "tlscacert": "",
  "tlscert": "",
  "tlskey": "",
  "tlsverify": true,
  "userland-proxy": false,
  "userland-proxy-path": "/usr/libexec/docker-proxy",
  "userns-remap": ""
}

* 报错处理

您的内核不支持 cgroup 交换限制功能

docker info提示WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.

1
sudo vim /etc/default/grub
1
2
# 加入或修改
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
1
2
3
4
sudo update-grub

# 系统重启后修复。
sudo reboot now

三、Docekr-Compose安装

1. 二进制安装

1
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

国内加速下载

1
sudo curl -L "https://gh.api.99988866.xyz/https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 检查是否安装成功
docker-compose --version

注意:如果docker-compose安装后命令失败,请检查您的路径。您还可以/usr/bin在路径中创建指向或任何其他目录的符号链接。

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
1
2
# 卸载
sudo rm /usr/local/bin/docker-compose

2. 使用pip安装

需要 pip 6.0 或更高版本

# 安装
sudo pip install docker-compose
# 卸载
pip uninstall docker-compose

四、Docekr-Compose配置