发布时间:
零、Docker的安装
从这篇文章开始,就陆续会有一系列的Docker笔记,主要是记录自己阅读《The Docker Book》的过程
从这篇文章开始,就陆续会有一系列的Docker笔记,主要是记录自己阅读《The Docker Book》的过程
这里仅仅介绍ubuntu系统下docker的安装,其他系统下的安装可以Google一下
环境准备
- 内核版本需要大于3.8以上,可以使用
uname -a查看内核版本,如果低于3.8的话需要升级内核。
➜ ~ uname -a
Linux huawei 5.4.0-109-generic #123-Ubuntu SMP Fri Apr 8 09:10:54 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
- CPU架构要是64位的,Docker目前不支持32位的机器
- 支持合适的存储驱动(默认存储时AUFS或Device Mapper), 包括:
- Device Mapper
- AUFS
- vfs
- btrfs
- ZFS(Docker1.7引入)
➜ ~ ls -l /sys/class/misc/device-mapper
lrwxrwxrwx 1 root root 0 Nov 15 13:46 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper
- 内核必须支持并开启cgroup和namespace功能
安装Docker
这里参考菜鸟教程的安装过程
一般国内的话使用daocloud的一键安装脚本
curl -sSL https://get.daocloud.io/docker | sh
配置UFW
ubuntu默认会开启ufw防火墙,ufw防火墙默认会丢弃所有转发的数据包,但是Docker需要使用一个网桥来管理容器中的网络, 因此需要在ufw中启用数据包的转发。我们修改/etc/default/ufw文件即可:
# 转发策略,默认为DROP
DEFAULT_FORWARD_POLICY="ACCEPT"
保存后重新加载即可
sudo ufw reload
配置Docker守护进程
Docker安装完后会默认运行一个收回进程,监听/var/run/docker.sock, 用于监听来自客户端的请求。
冷知识,Docker其实是CS架构,后台运行服务端守护进行,客户端通过RESTful API向服务端发起请求。
既然Docker的守护进程相当于一个服务,那么自然就存在如何配置这个服务。以满足不同的需求。
- 修改Docker守护进程,使其能接受所有公网的请求(默认就接受localhost的请求)
sudo docker daemon -H tcp://0.0.0.0:2375
对应的客户端如果需要指定连接的服务端的地址以及端口,也需要加上
-H参数
Note: Docker默认不需要进行认证,所以一旦向公网开放的话,那么所有人都可以连接该服务器。
这些配置信息都在/etc/default/docker中
- 检查Docker守护进程是否启动
sudo service docker status
在平时的使用中我遇到一个特别奇怪的问题,就是使用系统自带的service一直无法启动docker,最后只能手动去执行
dockerd命令,使其在后台运行起来
sudo setsid nohup dockerd &
- 最后检查Docker是否正常运行
sudo docker info
如果输出正常的话说明安装都成功了