1、docker安装最新版本
centos7 默认安装的是1.13版本,如果需要安装新版本,需要先卸载久版本
1.1删除旧版本
-
通知docker服务
systemctl stop docker -
查看当前版本
rpm -qa | grep docker -
卸载软件包
yum erase docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine \ docker-ce -
删除相关配置
find /etc/systemd -name '*docker*' -exec rm -f {} \; find /etc/systemd -name '*docker*' -exec rm -f {} \; find /lib/systemd -name '*docker*' -exec rm -f {} \; rm -rf /var/lib/docker #删除以前已有的镜像和容器,非必要 rm -rf /var/run/docker
1.2 安装新版本
-
升级系统包
yum update -
软件包安装
yum install -y yum-utils device-mapper-persistent-data lvm2 -
添加yum源
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo -
查看可安装的版本
yum list docker-ce --showduplicates | sort -r -
安装最新版本
yum install docker-ce -y -
启动并开启自启
systemctl start docker systemctl enable docker -
查看docker版本
docker version
2. linux下解决docker端口映射到宿主机后外网无法访问的问题
解决办法:
vi /etc/sysctl.conf
或者
vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
systemctl restart network
查看是否修改成功
sysctl net.ipv4.ip_forward
如果返回为“net.ipv4.ip_forward = 1”则表示成功了
3. docker开机自启
sudo systemctl enable docker
sudo systemctl start docker
4. docker查看日志
docker logs -f -t --since="2017-05-31" --tail=10 edu_web_1
docker logs [OPTIONS] CONTAINER
Options:
--details 显示更多的信息
-f, --follow 实时输出日志,最后一行为当前时间戳的日志
--since string 输出日志开始日期,即只输出指定日期之后的日志。
--tail string 显示最后多少行日志, 默认是all
(如: -tail=10 : 查看最后的 10 行日志。)
5.清理docker磁盘空间,迁移/var/lib/docker目录
-
查看磁盘使用状况
du -hs /var/lib/docker/ -
迁移/var/lib/docker/目录
-
停止docker服务
systemctl stop docker -
创建新的docker目录,执行命令df -h,找一个大的磁盘。 我在 /home目录下面建了 /home/docker/lib目录,执行的命令是
mkdir -p /home/docker/lib -
迁移/var/lib/docker目录下面的文件到 /home/docker/lib
rsync -avz /var/lib/docker /home/docker/lib/ -
配置 /etc/systemd/system/docker.service.d/devicemapper.conf。查看 devicemapper.conf 是否存在。如果不存在,就新建
mkdir -p /etc/systemd/system/docker.service.d/ vi /etc/systemd/system/docker.service.d/devicemapper.conf -
然后在 devicemapper.conf 写入:(同步的时候把父文件夹一并同步过来,实际上的目录应在 /home/docker/lib/docker )
[Service] ExecStart= ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker -
重新加载 docker
systemctl daemon-reload systemctl restart docker -
为了确认一切顺利,运行
docker info命令检查Docker 的根目录.它将被更改为 /home/docker/lib/docker... Docker Root Dir: /home/docker/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ -
启动成功后,再确认之前的镜像还在:
docker images -
确认无误后,删除/var/lib/docker/目录中的文件
-
6. docker 限制容器日志大小
-
创建/etc/docker/daemon.json如果已经存在则不用创建
-
增加log-opts参数
"log-driver":"json-file", "log-opts":{ "max-size" :"50m","max-file":"1"} -
加载配置文件,并重启
systemctl daemon-reload systemctl restart docker