目录

Docker 相关记录


建设中🚧

入门资源

安装下载 - windows
社区讨论
中文资源
依赖和扩展

用途 方案 网址 备注
官网 官方文档, windows安装, linux安装, cheet sheet Ubuntu: sudo apt install docker.io
文档 Dockerfile Reference 网址 备注
用途 方案 网址 备注
用途 方案 网址 备注
用途 方案 网址 备注

cheatsheet

  1. 显示所有容器
    • sudo docker container ls
  2. 显示所有容器(包含已经停止了的)
    • sudo docker ps -a
  3. 删除所有已经停止了的容器
    • sudo docker container prune
  4. 启动一个容器
    • sudo docker start [id]
  5. 连接容器的终端(命令行)
    • sudo docker attach [id]
  6. 连接到正在运行的容器的shell
    • sudo docker exec -it [id] /bin/bash
  7. 查看容器命令行日志:

方案权衡

Docker Swarm 和 Kubernetes的比较

  1. Kubernetes vs. Docker Swarm:完整的比较指南
  2. Docker 集群工具比对:Kubernetes vs Docker Swarm
  3. Docker Swarm vs Kubernetes

经验和最佳实践


常见错误的原因和解决

错误描述 报错关键词 原因 解决方案 参考网址
错误描述 报错关键词 原因 解决方案 参考网址
错误描述 报错关键词 原因 解决方案 参考网址
错误描述 报错关键词 原因 解决方案 参考网址
错误描述 报错关键词 原因 解决方案 参考网址
错误描述 报错关键词 原因 解决方案 参考网址

文档

  1. Dockerfie 官方文档
  2. Dockerfile 最佳实践文档
  3. Docker 官方镜像 Dockerfile
  4. Docker集群图形化显示工具 Visualizer

笔记

  1. Docker —— 从入门到实践

  2. Docker 笔记 - 01.基础

  3. Windows WSL + Docker 开发环境搭建

    • 包含wsl下配置docker的方式
  4. WSL 2 上的 Docker 远程容器入门

  5. 判断是wsl1还是wsl2 / 对比 / 图形界面显示

    • 执行wsl -l -v显示 wsl 版本
  6. wsl1和wsl2的对比 - 微软官方 / 什么是适用于 Linux 的 Windows 子系统?

  7. 相对通用的安装docker和docker compose的shell脚本: (202405)

# check guide: https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# sudo docker run hello-world

# check post-install operations todo to enable non-privilege users to use docker.
#       https://docs.docker.com/engine/install/linux-postinstall/

# sudo groupadd docker
# sudo usermod -aG docker $USER
# sudo usermod -aG docker ubuntu
# sudo usermod -aG docker jetwaves

# To automatically start Docker and containerd on boot for other Linux distributions using systemd, run the following commands:
# sudo systemctl enable docker.service
# sudo systemctl enable containerd.service
#  to stop thsis behavior:
# sudo systemctl disable docker.service
# sudo systemctl disable containerd.service

# install docker-compose plug-in:
#       https://docs.docker.com/compose/install/#scenario-two-install-the-compose-plugin
sudo apt-get update
sudo apt-get install -y docker-compose-plugin

# docker compose version

阿里云环境安装docker和docker compose

#   添加阿里云 GPG 密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
#   设置 stable 仓库
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#   安装 Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io 
#   设置非root用户的权限
sudo usermod -aG docker $USER
#   安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.
3/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

阿里云环境为docker配置镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://XXXXXXX.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 注意: 这里的 XXXXXX 要去阿里云账号ACR服务里面找
  • "registry-mirrors": ["https://t9my2b53.mirror.aliyuncs.com"]

腾讯云安装docker

https://cloud.tencent.com/document/product/213/46000

自建docker镜像加速器

一种用nginx代理的简单方法(缺点:网速受限)

  1. 做代理的节点:

    1. 安装nginx

    2. 新建虚拟主机:

      • 配置如下:

            server {
                server_name docker.yourdomain.site;      # 《 ------ 注意替换主机域名
                #listen 80;
                location / {
                    #client_max_body_size 1024M;
                    proxy_pass https://registry-1.docker.io:443;
                    proxy_redirect https://registry-1.docker.io $scheme://$http_host;
                    #
                    proxy_set_header Host registry-1.docker.io;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;
                    proxy_buffering off;
                    proxy_request_buffering off;
                    proxy_http_version 1.1;
                    proxy_read_timeout 18000s;
                    proxy_send_timeout 18000s;
                    send_timeout 18000s;
                    proxy_connect_timeout 18000s;
                    proxy_set_header Authorization $http_authorization;
                    proxy_pass_header Authorization;
                    proxy_intercept_errors on;
                    recursive_error_pages on;
                    error_page 301 302 307 = @handle_redirect;
                }
                #
                location @handle_redirect {
                    resolver 1.1.1.1;
                    set $saved_redirect_location '$upstream_http_location';
                    proxy_pass $saved_redirect_location;
                }
                #
                #listen 443 ssl; # managed by Certbot
                #ssl_certificate /etc/letsencrypt/live/docker.yourdomain.site/fullchain.pem; # managed by Certbot
                #ssl_certificate_key /etc/letsencrypt/live/docker.yourdomain.site/privkey.pem; # managed by Certbot
                #include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
                #ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
            }
    3. 为这个虚拟主机签发ssl证书

      • 如果用certbot,会自动补全被注释的内容。
      • 以上虚拟主机配置会让所有对主机网址的访问指向 registry-1.docker.io
      • 可以监控 nginx的log看到外部访问:客户机执行 docker pull 的时候服务器端可以看到http请求
  2. 需要使用docker的节点,

    • 执行命令:

          sudo tee /etc/docker/daemon.json <<-'EOF'
          {
          "registry-mirrors": ["https://docker.yourdomain.site"]         《《《《  换成 1 里面的服务器位置
          }
          EOF
666    ·   1

(点赞功能开发中)

评论列表
{{item.userName}}
{{item.lastUpdate}}
{{item.content}}
{{item.like}}    |   {{item.unlike}}
{{ sItem.userName }}
{{ sItem.lastUpdate }}
{{ sItem.content }}
{{ sItem.like }}    |   {{ sItem.unlike }}