Skip to content

dorker

备注
Guide
Manual
Dockerfile reference
国外docker hub
国内docker hub
Quay红帽镜像源
基于浏览器的实验平台4个小时
阿里云国内加速镜像配置文件
aws 镜像

blog

blogdesc
Docker教程

前缀镜像

前缀用法相关
docker.m.daocloud.iodocker pull apache/skywalking-oap-server:9.7.0->docker pull docker.m.daocloud.io/docker.io/apache/skywalking-oap-server:9.7.0gitcode daocloud
github daocloud

Docker 安装

网址备注
麦兜IT

Windows

  1. download docker

Linux

网址备注
github docker install

centos

移除原来的docker
sh
# remove
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker- engine-selinux docker-engine
#or
yum remove docker*
安装
sh
# 安装工具
yum install -y yum-utils

# 添加docker源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新yum缓存(centos)
sudo yum update -y
sudo yum makecache fast

# 检查防火墙并关闭
systemctl status firewalld.service
systemctl stop firewalld.service

# install docker-buildx-plugin构建,docker-compose-plugin将原 docker-compose 独立工具整合为 Docker CLI 的子命令(docker compose),提供更好的兼容性和功能扩展。
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
 
# 开启防火墙
systemctl restart firewalld.service

ubuntu

sh
# 更新apt缓存(ubuntu) 安装依赖:
sudo apt update -y
sudo apt-get install ca-certificates curl gnupg

# 添加 Docker 的 GPG 密钥:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 添加 Docker 软件源: 官方软件源https://download.docker.com
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" |  tee /etc/apt/sources.list.d/docker.list > /dev/null

# 更新软件包列表
sudo apt update

# 安装 Docker:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

自动化脚本安装

sh
# download script
curl -fsSL https://get.docker.com -o install-docker.sh

# Install docker through Aliyun
sudo sh install-docker.sh --mirror Aliyun|AzureChinaCloud

配置

sh
# 设置Docker守护进程配置(可选)
if [ ! -f /etc/docker/daemon.json ]; then
    sudo mkdir -p /etc/docker
    cat <<EOF | sudo tee /etc/docker/daemon.json
{
	"exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
      "max-size": "100m"
   },
   "builder": {
      "gc": {
          "defaultKeepStorage": "20GB",
          "enabled": true
        }
    },
    "experimental": false,
    "storage-driver": "overlay2",
    "registry-mirrors": [
      "https://swr.cn-north-4.myhuaweicloud.com",
      "https://ccr.ccs.tencentyun.com",
      "https://docker.m.daocloud.io",
      "https://docker.hlmirror.com",
      "https://docker-0.unsee.tech",
      "https://docker.kejilion.pro",
      "https://docker.jsdelivr.fyi",
      "https://dockertest.jsdelivr.fyi",
      "https://hub.littlediary.cn",
      "https://image.cloudlayer.icu",
      "https://hub3.nat.tf",
      "https://func.ink",
      "https://a.ussh.net",
      "https://lispy.org",
      "https://docker.yomansunter.com",
      "https://docker.xuanyuan.me",
      "https://docker.mybacc.com",
      "https://dytt.online",
      "https://docker.xiaogenban1993.com",
      "https://dockerpull.cn",
      "https://dockerpull.pw",
      "https://docker-mirror.aigc2d.com",
      "https://hub.fast360.xyz",
      "https://docker.melikeme.cn"
    ],
    "proxies": {
      "http-proxy": "http://127.0.0.1:7890",
      "https-proxy": "http://127.0.0.1:7890",
      "no-proxy": "*.test.example.com,.example.org,127.0.0.0/8"
    }
}
EOF
fi

# 使能并重启docker
systemctl enable docker
systemctl start docker

# or 
sudo systemctl daemon-reload
sudo systemctl restart docker

# or 启动& 开机启动docker; enable + start 二合一
systemctl enable docker --now

# 验证Docker是否安装成功
docker version

仅安装docker客户端

sh
# 仅安装 Docker CLI(不安装 dockerd),完整引擎安装docker-ce
sudo apt install -y docker-ce-cli

# 验证安装
docker --version

# 二进制客户端
curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz | tar -xz --strip-components=1 docker/docker

# 移动到 PATH(如 /usr/local/bin)
sudo mv docker /usr/local/bin/

docker --version

# 客户端需要添加相应配置
export DOCKER_HOST=tcp://docker-in-docker:2376
export DOCKER_TLS_VERIFY=1
export DOCKER_TLS_CERTDIR=/certs
export DOCKER_CERT_PATH=/certs/client

# Docker 客户端需要连接远程 dockerd(如宿主机或其他服务器),需配置环境变量
export DOCKER_HOST="tcp://<远程IP>:2375"  # 或 Unix socket: "unix:///var/run/docker.sock"

# 或使用 -H 参数:
docker -H tcp://192.168.1.100:2375 ps

代理设置

官方文档

Daemon configuration

You may configure proxy behavior for the daemon in the daemon.json file, or using CLI flags for the --http-proxy or --https-proxy flags for the dockerd command. Configuration using daemon.json is recommended.

json
{
  "proxies": {
    "http-proxy": "http://proxy.example.com:3128",
    "https-proxy": "https://proxy.example.com:3129",
    "no-proxy": "*.test.example.com,.example.org,127.0.0.0/8"
  }
}

After changing the configuration file, restart the daemon for the proxy configuration to take effect:

sh
sudo systemctl restart docker

添加用户到docker组

  1. 检查docker组是否存在, 创建docker用户组
sh
# 检查docker组是否存在
grep docker /etc/group

# 不存在则创建docker用户组
sudo groupadd docker

# or
if [ ! $(getent group docker) ]; then
    sudo groupadd docker
else
    echo "docker user group already exists"
fi
  1. 添加当前用户加入docker用户组
sh
sudo usermod -aG docker ${USER}

# or

sudo gpasswd -a $USER docker
  1. 重启docker服务
sh
sudo systemctl restart docker
  1. 重新登录用户
sh
# 为了使修改生效,需要重新登录要添加到docker组的用户。可以使用以下命令注销并重新登录:
logout
# or

# 切换到root用户
su root        
# 再切换到原来的应用用户以上配置才生效
su ${USER}
  1. 切换或者退出当前账户再从新登入
sh
# 如果当前用户执行无报错, 则表示用户已经加到docker组 
docker ps
  1. 如果执行docker ps还有报错
sh
# 查看/var/run/docker.sock文件的权限
ls -al /var/run/docker.sock
sh
# 若是其他用户没有访问权限,则需要配置下权限
sudo chmod o+rw /var/run/docker.sock

然后重新执行docker ps 无报错则可以了

Windows上切换使用docker和虚拟机

shell
# 详情访问https://docs.docker.com/desktop/troubleshoot/topics/#virtualization
bcdedit /set hypervisorlaunchtype auto