Docker进阶
Contents
目录 start
目录 end|2021-02-03 17:25|
Docker Advance
文件系统
Docker支持 AUFS、Btrfs、Device mapper、OverlayFS、Overlay2FS、ZFS
AUFS
Docker旧版本 采用的是 AUFS 文件系统
参考: 剖析Docker文件系统:Aufs与Devicemapper 参考: 理解Docker(7):Docker 存储 - AUFS
OverlayFS
最新的Docker都是采用这种文件系统, 并具有 overlay overlay2 两代驱动
查看占用大小 docker system df
配置
更改数据的存放目录
docker 默认是将数据放在了
/var/lib/docker
下, 包括所有的镜像, 容器, 卷…
挂载新的目录到 /var/lib/docker 上
|
|
- 还尝试过将文件复制出去, 然后用软链接的方式, 但是失败了 报的错也没怎么看懂
- 修改配置文件
|
|
提供底层接口访问
暴露守护进程端口
- systemctl edit docker.service
|
|
以上所处文件为: /etc/systemd/system/docker.service.d/override.conf
注意:
-H unix:///var/run/docker.sock
如果少了这个配置, Docker客户端就失效了, 什么都干不了
- systemctl restart docker
而那些不是使用systemd管理服务的才要在 /etc/docker/ 下配置 daemon.json official doc
持有套接字文件
将
/var/run/docker.sock
的访问权限 提供给使用方即可
Tips
WARNING: No swap limit support
- Edit the /etc/default/grub file.
- Set the GRUB_CMDLINE_LINUX value as follows:
- GRUB_CMDLINE_LINUX=“cgroup_enable=memory swapaccount=1”
- sudo update-grub
- Reboot your system.
孤儿进程以及僵死进程
进程相关知识
当父进程结束后,原来的僵死子进程, 会成为孤儿进程且是僵死进程, 此时会被1号进程收养
参考: Docker和孤儿进程、僵死进程
在 Docker 中, 由于没有 init 这个1号进程(往往是应用进程作为1号进程) 很有可能子进程称为僵死进程且一直存在
Docker1.11之前的版本,孤儿进程是否有可能成为僵死进程取决于容器内pid为1的进程是否在子进程退出时调用wait/waitpid
Docker1.11版本之后孤儿进程不会成为僵死进程
解决策略
tini
tini 轻量级init进程 更好的管理进程等资源
Author Kuangcp
LastMod 2018-12-15