安装
安装必要条件
- 物理设备
服务器/云服务器/虚拟机一台 - 系统版本
centos7.x(x尽量大于2)/ubuntu 16.x。centos6是绝对没法玩了,就算勉强运行起来,出现各种未知bug会让你头皮发麻。 - 网络环境
可连外网
安装环境
- 防火墙
如果是云服务器,不要启用防火墙,直接使用云服务器的访问策略即可。如果是实体服务器,最佳方案是在对外访问的服务器启动防火墙,其他内部服务器不启动防火墙。如果必须使用防火墙,卸载掉centos7自带的firewalld,转为使用iptables。 - 端口
防火墙开放500/udp ,4500/udp接口。
安装步骤
执行安装命令
- 创建软连接
ln -s /data/docker /var/lib/docker
- Docker的镜像包括容器数据都存储在/var/lib/docker下面,如果没有单独挂载,那么默认使用根目录/的磁盘空间。如果不方便调整磁盘大小,那么可以通过软连接的方式将docker的存储存到数据盘上。
- 安装前需要检查docker存储路径是否有足够的磁盘空间。
- 如果是已经安装过docker的服务器需要调整,则需要先停止docker,拷贝数据,创建软连接,最后再重启docker。
- 使用root用户执行下面的命令行进行安装
curl https://releases.rancher.com/install-docker/17.09.sh | sh
其中17.09为版本号,如需安装其他版本,可以修改该版本号重新安装,或者可以参考网址https://rancher.com/docs/rancher/v1.6/en/hosts/#supported-docker-versons,查询安装命令。
注:如果安装过程提示:container-selinux必须大于2.9,问题的原因是系统的yum源没有该软?件,解决办法是给服务器切换成阿里云的yum源。
Docker默认给root用户以及docker用户组的用户使用,如需给普通用户添加Docker使用权限,执行下列命令
usermod -aG docker your—user
- 设置Docker开机自启动
systemctl enable docker
- 查询docker信息
docker info
删除主机
比如主机配置错误,或者无法解决的异常,需要删除主机,首先现在主机界面将服务疏散,然后删除。再依次执行下面的命令
docker container stop `docker ps -aq` ##停掉所有在运行的容器
docker container prune ##删除所有已经停止的容器
docker volume prune ##删除所有未使用的数据卷
rm -rf /var/lib/rancher ##清除之前接入rancher平台的数据,会提示设备繁忙,没有关系
systemctl restart docker ## 重启一下docker 服务
执行到这,服务器就清理干净了,如果需要重新接入rancher平台,就重新走一遍添添加主机流程
卸载
如果操作不慎,出现未知问题,则可以尝试卸载重装
命令:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
rm -rf /etc/systemd/system/docker.service.d
rm -rf /var/lib/docker
rm -rf /var/run/docker
运维
服务器常用命令:
常用命令:
查看当前文件大小:du -hsx * | sort -rh | head -10
查看磁盘情况:df -h
查看服务器状态:top
查看服务器内存:free
查看容器即时状态:docker stats
查看容器列表:docker container ls
容器占用磁盘过高解决办法:
1,先执行
// 清理掉没在使用的镜像
docker container prune
docker image prune -a
docker system prune -a
2,查找是否有日志未收集
2.1 cd /var/lib/container //containers目录下面的大文件,是json.log结尾的是日志文件
2.2 du -hsx * | sort -rh | head -10 // 查看哪个占用比较大
2.3 cd xxx // 切换到大目录下
2.4 echo > xxx-json.log // 清除日志
3, 定位到是哪个容器没有收集日志
执行:docker container ls|grep xxx(刚刚大目录的前几位)
出现exit status 34状态
- 内存分析
cat /proc/buddyinfo
- 优化内存
方法一:周期性地或者在发现大块内存不足时,先进行drop_cache操作
echo 3 > /proc/sys/vm/drop_caches
方法二:必要时候进行内存整理,开销会比较大,会造成业务卡住一段时间(慎用)
echo 1 > /proc/sys/vm/compact_memory
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)