deploy_docker_on_ubuntu18.04

Deploy in Ubuntu –dev

System Init

阿里云上的ECS

数据盘挂载【按需操作】

1
2
3
4
5
6
7
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt autoremove
$ sudo fdisk -l
# 执行命令后,如果不存在/dev/vdb,表示您的实例没有数据盘。确认数据盘是否已挂载。
$ sudo fdisk -u /dev/vdb # 执行后输入n开始新分区,后续均可回车使用默认值,最后输入 w 保存

运行fdisk -lu /dev/vdb命令查看新分区。
如果出现/dev/vdb1的相关信息,表示新分区已创建完成。
sudo mkfs -t ext4 /dev/vdb1 创建文件系统
sudo cp /etc/fstab /etc/fstab.bak 备份etc/fstab
把分区写入启动/etc/fstab,启动开机自动挂载分区

1
2
3

sudo echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /mnt ext4 defaults 0 0 >> /etc/fstab

运行sudo mount /dev/vdb1 /mnt命令挂载文件系统。
如果运行df -h命令后出现新建文件系统的信息,表示文件系统挂载成功。

Install docker & Config

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

#Install
$ sudo apt-get update

$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

$ 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 docker-ce-cli containerd.io

#安装docker-compose
#请前往 https://github.com/docker/compose/releases 寻找最新版本的版本号进行替换,底下版本号为:1.27.2]
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker-compose --version

#修改存储路径
$ sudo service docker stop
$ sudo mv /var/lib/docker /mnt/docker
$ sudo ln -s /mnt/docker /var/lib/
$ sudo service docker start

#阿里云镜像地址登录阿里云后从https://cr.console.aliyun.com/cn-shenzhen/instances/mirrors获取
$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://u9bgtozi.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装nginx以及配置

nginx安装

sudo apt install nginx

证书申请以及安装

1
2
3
4
5
sudo add-apt-repository universe  
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
#开始申请证书
certbot --nginx --domains sudomain.***.com

更新nginx配置

覆盖上传nginx文件夹的文件到/etc/nginx

1
2
3
4
5
sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default
#域名
sudo ln -s /etc/nginx/sites-available/sudomain.***.com.conf /etc/nginx/sites-enabled/sudomain.***.com.conf
sudo service nginx restart

【可选操作】加密网站访问,使用用户名密码

1
2
sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd Javen

修改对应server的配置节

1
2
3
4
5
6
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}

增强安全配置【仅在未使用certbot时使用】

生成 dhparam.pem 文件, 在命令行执行任一方法:

方法1: 很慢

openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

方法2: 较快

与方法1无明显区别. 2048位也足够用, 4096更强

openssl dhparam -dsaparam -out /etc/nginx/ssl/dhparam.pem 4096

更新说明

2021-10-16日更新,
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
自从v2.0,版本号前面需要加v,如https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-$(uname -s)-$(uname -m)