centos:

1.卸载旧的版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine


2.需要安装包
sudo yum install -y yum-utils


3.设置阿里镜像仓库 :(推荐)
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.安装 docker
安装docker-ce(社区版-免费的)
sudo yum install -y docker-ce docker-ce-cli containerd.io

5.移动docker到/opt(个人习惯)
mv /var/lib/docker/ /opt/
ln -s /opt/docker/ /var/lib/

6.配置阿里云镜像源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://286u3d9d.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

检查我们刚刚的源有没有换成功,使用  sudo docker info

7.#启动docker并且设置开机启动
systemctl enable docker && systemctl start docker

8.安装完成
docker version
docker compose version

9.配置用户组(可选)
sudo usermod -aG docker $USER

ubuntu:

1.更新软件包
在终端中执行以下命令来更新Ubuntu软件包列表和已安装软件的版本:
sudo apt update
sudo apt upgrade

2.安装docker依赖
Docker在Ubuntu上依赖一些软件包。执行以下命令来安装这些依赖:
apt-get install ca-certificates curl gnupg lsb-release

3.添加Docker官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

4.执行以下命令来添加Docker的软件源:
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

5.执行以下命令来安装Docker:
apt-get install docker-ce docker-ce-cli containerd.io

6.配置用户组(可选)
sudo usermod -aG docker $USER

7.移动docker到/opt(个人习惯)
mv /var/lib/docker/ /opt/
ln -s /opt/docker/ /var/lib/

8.配置阿里云镜像源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://286u3d9d.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

检查我们刚刚的源有没有换成功,使用  sudo docker info

9.#启动docker并且设置开机启动
systemctl enable docker && systemctl start docker

10.安装完成
docker version
docker compose version

deepin:

1.先卸载以前版本
sudo apt-get remove docker.io docker-engine

2.安装密钥
sudo apt-get install apt-transport-https ca-certificates curl python-software-properties software-properties-common

如果提示python-software-properties未安装成功或其他的问题,最后导致add-apt-repository命令无法使用,可执行下面:

sudo apt-get install python-software-properties
sudo apt-get update
sudo apt install software-properties-common
sudo apt-get update

3.下载并安装密钥

// 中科大源(推荐这个)
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -

// 官方源,不一定可以。
// curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

4.查看密钥是否安装成功
sudo apt-key fingerprint 0EBFCD88

如果安装成功,会出现如下内容:

pub 4096R/0EBFCD88 2017-02-22    Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

uid Docker Release (CE deb) <docker@docker.com>

sub 4096R/F273FCD8 2017-02-22

5.在 source.list 中添加 docker-ce 软件源

编辑 sudo vim /etc/apt/sources.list 
deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian stretch stable

注意:先使用cat /etc/debian_version查看版本号
a). 对于deepin v20,我操作上面的命令得到debain版本是10.5,debian10.5的代号是buster

b). 对于deepin15.9.2 基于debian9.0, debian9.0的代号为stretch, 所以deepin 15.9.2上完整的添加信息为:
deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian stretch stable


6.更新仓库
sudo apt-get update

7.安装docker-ce

sudo apt-get install docker-ce

6.配置用户组(可选)
sudo usermod -aG docker $USER

7.移动docker到/opt(个人习惯)
mv /var/lib/docker/ /opt/
ln -s /opt/docker/ /var/lib/

8.配置阿里云镜像源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://286u3d9d.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

检查我们刚刚的源有没有换成功,使用  sudo docker info

9.#启动docker并且设置开机启动
systemctl enable docker && systemctl start docker

10.安装完成
docker version
docker compose version

docker-compose.yml示例文件:

services:
  elasticsearch:
    image: elasticsearch:7.16.1
    container_name: es
    environment:
      discovery.type: single-node
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"
    ports:
      - "9200:9200"
      - "9300:9300"
    healthcheck:
      test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
      interval: 10s
      timeout: 10s
      retries: 3
    networks:
      - elastic
  logstash:
    image: logstash:7.16.1
    container_name: log
    environment:
      discovery.seed_hosts: logstash
      LS_JAVA_OPTS: "-Xms512m -Xmx512m"
    volumes:
      - ./logstash/pipeline/logstash-nginx.config:/usr/share/logstash/pipeline/logstash-nginx.config
      - ./logstash/nginx.log:/home/nginx.log
    ports:
      - "5000:5000/tcp"
      - "5000:5000/udp"
      - "5044:5044"
      - "9600:9600"
    depends_on:
      - elasticsearch
    networks:
      - elastic
    command: logstash -f /usr/share/logstash/pipeline/logstash-nginx.config
  kibana:
    image: kibana:7.16.1
    container_name: kib
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch
    networks:
      - elastic
networks:
  elastic:
    driver: bridge