安装 Docker#
1
2
3
4
| curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
# 或者使用阿里云的镜像安装
sh get-docker.sh --mirror Aliyun
|
清理镜像#
清理停止的容器#
1
| docker container prune -f
|
清理未使用的数据卷#
清理 Build Cache#
清理所有#
查看磁盘占用情况#
安装 docker-compose#
1
2
3
4
5
6
7
| sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
|
docker-compose build 不留下 none 的 image#
1
| docker-compose build --force-rm
|
使用 alpine 镜像出现not found
的原因及解决方法#
使用 alpine 作为基础镜像的时候, 偶尔会出现not found
的错误, 但文件却是存在的.
使用其他发行版的镜像的时候, 不会出现这个错误. 就查找资料寻找了下原因.
Go 编译默认其实并不是静态编译, 会依赖系统中的一些动态链接库, 比如glibc
.
大部分发行版默认都会带glibc
, 但 alpine 并没有自带, 而是自带了musl libc
.
所以执行依赖了glibc
的二进制文件的时候, 就会出现not found
的错误. (这个错误的描述是真的很有迷惑性 😂)
解决方法#
- 编译不依赖
glibc
的二进制文件, 比如 Go 编译的时候指定CGO_ENABLED=0
. - 编译一个依赖
musl libc
的二进制文件.
拯救 Docker 无法启动#
在 WSL2 中不知何因导致的 Docker 无法启动, 使用以下命令可以解决.
1
2
3
4
| sudo systemctl stop docker.service
sudo rm -rf /var/run/docker.sock
sudo rm -rf /var/lib/docker/network
sudo systemctl start docker.service
|
Author:
Gizmo
Link:
https://blog.lumina.moe/posts/docker-note/
License:
CC BY-NC-SA 4.0