Docker 相关记录
入门资源
安装下载 - windows
社区讨论
中文资源
依赖和扩展
用途 | 方案 | 网址 | 备注 |
---|---|---|---|
官网 | 官方文档, windows安装, linux安装, cheet sheet | Ubuntu: sudo apt install docker.io | |
文档 | Dockerfile Reference | 网址 | 备注 |
用途 | 方案 | 网址 | 备注 |
用途 | 方案 | 网址 | 备注 |
用途 | 方案 | 网址 | 备注 |
cheatsheet
- 显示所有容器
- sudo docker container ls
- 显示所有容器(包含已经停止了的)
- sudo docker ps -a
- 删除所有已经停止了的容器
- sudo docker container prune
- 启动一个容器
- sudo docker start [id]
- 连接容器的终端(命令行)
- sudo docker attach [id]
- 连接到正在运行的容器的shell
- sudo docker exec -it [id] /bin/bash
- 查看容器命令行日志:
- sudo docker logs [id] // 注意logs 有s https://blog.csdn.net/weixin_39506322/article/details/119776737
方案权衡
Docker Swarm 和 Kubernetes的比较
- Kubernetes vs. Docker Swarm:完整的比较指南
- Docker 集群工具比对:Kubernetes vs Docker Swarm
- Docker Swarm vs Kubernetes
经验和最佳实践
常见错误的原因和解决
错误描述 | 报错关键词 | 原因 | 解决方案 | 参考网址 |
---|---|---|---|---|
错误描述 | 报错关键词 | 原因 | 解决方案 | 参考网址 |
错误描述 | 报错关键词 | 原因 | 解决方案 | 参考网址 |
错误描述 | 报错关键词 | 原因 | 解决方案 | 参考网址 |
错误描述 | 报错关键词 | 原因 | 解决方案 | 参考网址 |
错误描述 | 报错关键词 | 原因 | 解决方案 | 参考网址 |
文档
- Dockerfie 官方文档
- Dockerfile 最佳实践文档
- Docker 官方镜像 Dockerfile
- Docker集群图形化显示工具 Visualizer
- Docker集群图形化显示工具 Visualizer的安装及注意事项
- Visualizer非常直观地显示了Swarm集群中,服务器的状态和服务器上面运行容器的状态。
- visualizer 服务提供一个可视化页面,我们可以从浏览器中很直观的查看集群中各个服务的运行节点
- Docker集群图形化显示工具 Visualizer的安装及注意事项
笔记
-
- 包含wsl下配置docker的方式
-
- 执行wsl -l -v显示 wsl 版本
相对通用的安装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代理的简单方法(缺点:网速受限)
做代理的节点:
安装nginx
新建虚拟主机:
配置如下:
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 }
为这个虚拟主机签发ssl证书
- 如果用certbot,会自动补全被注释的内容。
- 以上虚拟主机配置会让所有对主机网址的访问指向 registry-1.docker.io
- 可以监控 nginx的log看到外部访问:客户机执行 docker pull 的时候服务器端可以看到http请求
需要使用docker的节点,
执行命令:
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://docker.yourdomain.site"] 《《《《 换成 1 里面的服务器位置 } EOF
666 · 1
(点赞功能开发中)