0%

Docker的一些使用经验

经验和注意事项

在工作中使用了一段时间Docker来批量部署我的服务,也充当了一段时间运维,对于Docker的使用有了几条心得体会,在这里简单的列一下:

  1. 尽量使用docker-compose对docker的各项配置进行管理,防止后续对于手动使用docker的步骤遗忘
  2. docker的build过程、入口尽量设置成脚本文件,从而可以轻松应对更多的运行需求
  3. 规范化的管理好docker镜像、容器的名称很重要,方便在维护中快速查找
  4. 管理好docker network可以让docker应用之间轻松协作
  5. 可以使用docker快速搭建开发环境,并且使用volumes选项映射代码以及文件,产生改动能够立即映射到容器中

下面是我在aws linux虚拟机(Ubuntu 16.04)上快速安装Docker并且配置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
#!/usr/bin/env bash

# 在没有docker的linux机器上面安装docker的脚本

sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce

sudo mkdir -p /etc/docker

# 如果是国外则不需要配置阿里云加速器
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["$你的加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

# 安装docker-compose
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
sudo mv ~/docker-compose /usr/local/bin/
sudo chmod +x /usr/local/bin/docker-compose

如果你在国内,你可能希望使用的国内的源以及镜像。
以下脚本可用于ubuntu16.04,在build Docker的脚本中加入国内源以及镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cat > /etc/apt/sources.list << EOF
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
# 测试版源
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
# 源码
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
# 测试版源
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
EOF
mkdir ~/.pip
touch ~/.pip/pip.conf
cat > ~/.pip/pip.conf << EOF
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple/
EOF