Docker作为一个轻量型的虚拟容器,因为他能够使部署各种服务十分的方便简单,受到许多人的喜爱,这篇教程主要讲Docker从安装到部署的各种方法和注意事项。
docker

各种系统上面部署Docker环境

docker的部署还是相对复杂的,好在,官方提供了一键部署脚本,配合上国内源,使我们能在各种地方轻松部署docker环境。

Centos脚本:

在任意目录下新建sh可执行文件:
vim DockerInstall.sh
复制粘贴以下内容(适用于“网络通畅”的主机):

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
#!/bin/bash
# remove old version
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

# remove all docker data
sudo rm -rf /var/lib/docker

# preinstall utils
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

# add repository
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

# make cache
sudo yum makecache fast

# install the latest stable version of docker
sudo yum install -y docker-ce

# start deamon and enable auto start when power on
sudo systemctl start docker
sudo systemctl enable docker

# add current user
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker

对于网络“不通畅”的主机,我们则使用以下脚本:

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
#!/bin/bash
# 移除掉旧的版本
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

# 删除所有旧的数据
sudo rm -rf /var/lib/docker

# 安装依赖包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

# 添加源,使用了阿里云镜像
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 配置缓存
sudo yum makecache fast

# 安装最新稳定版本的docker
sudo yum install -y docker-ce

# 配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF

# 启动docker引擎并设置开机启动
sudo systemctl start docker
sudo systemctl enable docker

# 配置当前用户对docker的执行权限
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker

Debian和Ubuntu脚本:

对于Debian和Ubuntu来说部署则简单许多,只需要运行以下命令:
网络通畅:
curl -sSL https://get.docker.com/ | sh

网络不通畅(DaoCloud):
curl -sSL https://get.daocloud.io/docker | sh
这个脚本相对阿里云的来说更快一点,但是有一些小众的docker速度不快,或者存在找不到的情况

阿里云的:
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

配置Docker Hub的镜像加速器

国内访问 Docker Hub 有时会遇到困难,此时可以配置镜像加速器。国内很多云服 务商都提供了加速器服务

阿里云的加速器地址:https://cr.console.aliyun.com/?spm=a2c4e.11153959.blogcont29941.9.699b69d6JE3Sgg#/accelerator

针对Docker客户端版本大于1.10.0的用户 您可以通过修改daemon配置文件/etc/docker/daemon.json(没有时新建该文件)来使用加速器:

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

修改后

1
2
3
{
"registry-mirrors": ["<your accelerate address>"]
}

安装docker-compose

docker-compose支持用户使用一些现成的配置文件来部署一个容器,并且可定制性非常的强,适合开发者使用
安装命令:

1
apt install docker-compose

此处仅适用于Debian


使用Protainer来管理docker

Protainer是一款轻量级的docker网页管理系统,并且功能相对强大,支持多个服务器同时管理,十分好用。
一键部署:

1
docker run -d -p 9000:9000 --restart=always --name portainer -v /var/run/docker.sock:/var/run/docker.sock -v /Users/lee/dev/docker_file/portainer/data:/data docker.io/portainer/portainer

外部端口号:9000