如何在Debian 10下安装 Docker

新安装了Debian 10,需要进行一些配置,安装Docker运行环境

连接到服务器

使用ssh连接到本地的测试服务器上

ssh root@192.168.88.83

如果是本地测试服务器,可以将不需要的安全配置先关闭,便于测试部署的容器服务

安装Docker

安装Docker软件包

apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release \
    sudo

编辑sudoer

vi /etc/sudoers

添加gpg

curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加软件源

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

安装docker

apt-get update
apt-get install docker-ce docker-ce-cli containerd.io

使用额外的数据盘

默认安装docker将会使用/var/lib/docker作为数据存放目录,可以新增额外的数据盘,以减少对根分区(/)的空间占用

挂载数据盘

# 查看当前磁盘信息
lsblk
# 对第二块新磁盘进行分区
fdisk /dev/sdb
# 格式化数据盘微ext4格式
mkfs.ext4 /dev/sdb1
# 修改磁盘自启动挂载配置文件
vi /etc/fstab
# 添加如下信息
/dev/sdb1       /data       ext4    defaults 0 0
# 建立用来挂载新磁盘的目录
mkdir /data
# 挂载所有磁盘
mount -a
# 查看磁盘空间信息,检查是否挂载成功
df -h

迁移docker磁盘

# 进入数据盘挂载目录
cd /data
# 新建docker数据文件目录
mkdir docker
# 进入原始docker数据文件目录
cd /var/lib
# 将新建的docker数据文件目录软链接到当前目录下
ln -s /data/docker .

启动docker 服务

systemctl start docker
systemctl enable docker

安装 docker-compose

便于管理docker启动命令参数,使用compose编排

# 从github下载docker-compose二进制文件
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 给予运行权限
chmod +x /usr/local/bin/docker-compose

在数据盘下创建trunk环境目录

# 进入数据盘
cd /data
# 新建trunk目录
mkdir trunk
# 打开docker编排文件,如果不存在则会创建
vi docker-compose.yml

Nginx编排配置

建立nginx对应docker-compose.yml

version: "3.1"
services:
  nginx:
    image: nginx
    ports:
    - 8080:80

docker基本命令

# 查看当前系统中已经存在的镜像
docker images
# 查看当前运行的容器
docker ps -a

启动nginx容器

docker-compose up -d
docker-compose stop
docker-compose rm -f

运行成功后访问地址: http://192.168.88.83:8080/

【额外内容】使用mysql容器

拉取mysql镜像

docker pull mysql:8.0

建立mysql配置文件docker-compose.yml

version: "3.1"
services:
  mysql:
    image: mysql:8.0
    ports:
    - 13306:3306