赞
踩
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低
# 安装镜像 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun # 设置稳定仓库 sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2 sudo yum install -y yum-utils \ > device-mapper-persistent-data \ > lvm2 # 如果存在旧docker,卸载旧版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine # 存储库中列出可用版本 yum list docker-ce --showduplicates | sort -r # 安装选择的版本,我这里选的是19.03.13 yum install docker-ce-19.03.13 docker-ce-cli-19.03.13 containerd.io # 也可以安装最新版 yum -y install docker-ce # 启动docker systemctl start docker # 设置开机自启 systemctl enable docker
最好在服务部署的时候就干调优的事情,对服务影响最小
-- 关闭docker服务 systemctl stop docker -- 创建迁移后的目录 mkdir -p /home/jamelli/docker/data/lib -- 复制原有docker数据到新目录 rsync -r -avz /var/lib/docker /home/jamelli/docker/data/lib mkdir -p /etc/systemd/system/docker.service.d/ -- 创建docker 映射文件 cat <<EOF > /etc/systemd/system/docker.service.d/devicemapper.conf [Service] ExecStart= ExecStart=/usr/bin/dockerd --graph=/home/jamelli/docker/data/lib/docker EOF -- 重新加载 docker systemctl daemon-reload systemctl restart docker systemctl enable docker -- 如果重启失败,删除文件执行下面的操作 rm -rf /etc/systemd/system/docker.service.d/devicemapper.conf vim /etc/docker/daemon.json 新增以下信息: { "data-root": "/home/jamelli/docker/data/lib/docker" } -- 确认docker 路径[Docker Root Dir 属性列] docker info -- 确认镜像是否还在 docker images -- 删除历史docker文件 rm -rf /var/lib/docker/
max-file:日志文件上限个数
max-size:日志文件上限大小
-- log 限制
cat <<EOF > /etc/docker/daemon.json
{
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}
EOF
#类似于Linux上的df命令,用于查看Docker的磁盘使用情况:
docker system df
#可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。
docker system prune
#清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了…
#所以使用之前一定要想清楚.。我没用过,因为会清理 没有开启的 Docker 镜像。
docker system prune -a
#docker system df -v 命令可以进一步查看空间占用细节,以确定是哪个镜像、容器或本地卷占用过高空间
docker system df -v
docker system df docker自身的内存占用 docker system prune docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像 docker image 查看docker镜像内容 docker info 查看docker信息 docker stats 查看容器运行内存cpu占用情况 docker update --restart=always 容器名称 设置docker容器开机启动 less /var/lib/docker/containers/容器ID/容器ID-json.log docker 容器日志路径日志内容查询 docker logs --tail=10 -f 容器名称/容器id docker 容器日志内容实时查看
-it -d # 支持后台运行
-e TZ=Asia/Shanghai # 指定时区
-v /etc/localtime:/etc/localtime:ro # 公用服务器时间
--restart=always # 自动重启
解决方案:添加好用的镜像仓库地址
sudo vim /etc/docker/daemon.json
增加内容如下
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
-- 重新加载 docker
systemctl daemon-reload
systemctl restart docker
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。