Docker
跳转到导航
跳转到搜索
配置
/etc/docker/daemon.json[1]
{
"iptables": false,
"ip6tables": false,
"dns": ["172.17.0.1"],
"storage-driver": "btrfs"
}
有用的命令
内存限制
docker update -m 500m --restart unless-stopped fishroom-web
问题处理
Ctrl-P 不立即生效
这是由于 docker 命令行默认使用 Ctrl-P Ctrl-Q 来 detach。通过配置文件 ~/.docker/config.json 可以更改此键序列:[2]
{
"detachKeys": "ctrl-z,z"
}
内部原理
文件系统的位置
容器位于 containers/<ID> 下。容器使用的根文件系统由 layer 构成,在使用 btrfs 时,image/btrfs/layerdb/mounts/<ID>/mount-id 中存有 id,对应于 btrfs/subvolumes 下的目录名。同一目录下的 parent 文件中包含一个 diff_id,通过 image/btrfs/layerdb/sha256/<diff_id>/cache-id 可以查到镜像在 btrfs/subvolumes 下对应的目录名。
容器的配置文件位于config.v2.json和hostconfig.json中。端口映射位于后者。修改后需要重启 dockerd 才能生效,并且 dockerd 退出时会覆盖修改。
要进入指定容器的目录,使用:
cd /var/lib/docker/btrfs/subvolumes/$(</var/lib/docker/image/btrfs/layerdb/mounts/$(docker inspect NAME | jq -r '.[0].Id')/mount-id)
参见
外部链接
- Where Docker container security is headed | Opensource.com
- Over 30% of Official Images in Docker Hub Contain High Priority Security Vulnerabilities
- 观点 | Docker根本不适合用于本地开发环境 - DockOne.io
- docker 里几个基本概念的简单类比 - 依云's Blog
- Why strace doesn't work in Docker
- Dockerfile reference | Docker Documentation