docker中修改镜像容器的存放目录的方法

最近在学习docker的路上,今天遇到了个问题,在网上查找了一下资料,顺便留个笔记

在默认情况下,Docker镜像和容器的默认存放位置为: /var/lib/docker

一般根下分区我们不会给太大。镜像和容器越存越多一般我们有两种解决方法:

1. 挂载大分区到/var/lib/docker

一般选择建立逻辑分区lvm,方便后期扩展集体。

建立新分区,并格式化

[root@localhost lib]# lvcreate -L 300G lv_docker vg_home
[root@localhost lib]# mkfs.ext4 /dev/vg_home/lv__docker

挂载新分区到临时挂载点

[root@localhost lib]# mkdir /mnt/docker
[root@localhost lib]# mount /dev/vg_home/lv_docker /mnt/docker/

停掉docker服务后,复制/var/lib/docker下数据到临时挂载点

[root@localhost lib]# service docker stop
[root@localhost lib]# cp -r /var/lib/docker/* /mtn/docker

修改/var/lib/docker为/var/lib/docker.bak,并创建/var/lib/docker

[root@localhost lib]# mv /var/lib/docker{,.bak}
[root@localhost lib]# mkdir /var/lib/docker

挂载新分区到/var/lib/docker,并设置开机自动挂载

[root@localhost lib]# mount /dev/vg_home/lv_docker /var/lib/docker
[root@localhost lib]# vim /etc/fstab

---
 /dev/vg_home/lv_docker /var/lib/docker ext4 defaults 0 0
----

启动Docker服务,检查Docker服务是否可用, 数据是否完整

[root@localhost lib]# /etc/init.d/docker start
[root@localhost lib]# docker images
[root@localhost lib]# docker ps -a

确认无误后卸载临时挂载点,删除/var/lib/docker.bak

[root@localhost lib]# umount /mnt/docker
[root@localhost lib]# rm -rf /var/lib/docker.bak

2. 修改镜像和容器的存放路径

在Docker服务配置文件/etc/sysconfig/docker中修改镜像和容器存放路径的参数, 在配置文件中加入:

other_args="--graph=/data/docker"

具体执行步骤如下:

停止Docker服务

[root@localhost lib]# service docker stop

备份数据到新的存放路径

[root@localhost lib]# cp -rf /var/lib/docker /data/

修改备份/var/lib/docker路径

[root@localhost lib]# mv /var/lib/docker{,.bak}

启动Docker服务

[root@localhost lib]# service docker start

测试Docker服务

[root@localhost lib]# docker info

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Docker网络之单host网络及使用案例

    前言 前面总结了Docker基础以及Docker存储相关知识,今天来总结一下Docker单主机网络的相关知识.毋庸置疑,网络绝对是任何系统的核心,他在Docker中也占有重要的作用. 一.Docker默认网络 在新安装docker的主机上执行 docker network ls 便能看到docker默认安装的所有网络,分别是none网络.host网络和bridge网络. 1.1 none 网络 none网络就是什么都没有的网络.挂在这个网络下的容器除了lo,没有其他任何网卡.容器run时,可以通

  • Docker端口映射实现网络访问的方法

    Docker运行容器之后却发现没IP,没端口,那要如何访问容器呢? 下面我来介绍下docker通过端口映射来实现网络访问 一.从外部访问容器应用 在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的. 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数指定端口映射. 先来说说p和P吧 -p 可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器 -P 它会随机映射一个端口至容器内部开放的网络端口(范围不详,似乎都上万) 先申明

  • Docker探索namespace详解

    Docker通过namespace实现了资源隔离,通过cgroups实现了资源限制,通过写时复制(copy-on-write)实现了高效的文件操作. 1.namespace资源隔离 namepsace的6项隔离: namespace 系统调用参数 隔离内容 UTS CLONE_NEWUTS 主机名与域名 IPC CLONE_NEWIPC 信号量,消息队列和共享内存 PID CLONE_NEWPID 进程编号 Network CLONE_NEWNET 网络设备,网络栈,端口等 Mount CLON

  • docker中修改镜像容器的存放目录的方法

    最近在学习docker的路上,今天遇到了个问题,在网上查找了一下资料,顺便留个笔记 在默认情况下,Docker镜像和容器的默认存放位置为: /var/lib/docker 一般根下分区我们不会给太大.镜像和容器越存越多一般我们有两种解决方法: 1. 挂载大分区到/var/lib/docker 一般选择建立逻辑分区lvm,方便后期扩展集体. 建立新分区,并格式化 [root@localhost lib]# lvcreate -L 300G lv_docker vg_home [root@local

  • Docker中的镜像详细介绍

    Docker中的镜像详细介绍 Docker镜像可以理解为运行在Docker容器中的一个组件,本节将会带领大家学会Docker镜像的下载.搜索.查看.添加删除等一系列操作.Docker在运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会尝试从默认的远程仓库Docker Hub下载. 一.获取镜像:  1.Docker从网络上下载镜像的格式为: docker pull [NAME]:[TAG] 其中TAG即为标签,如果不指定标签的话,那么默认会下载最新版本的镜像. 比如从Docke

  • docker中修改mysql最大连接数及配置文件的实现

    1.找到mysql镜像 docker ps 2.进入镜像mysql镜像内部 docker exec -it 05138413c565 /bin/bash 3.安装vim 因为docker镜像内部没有带vim命令,所以需要手动安装,也可以利用docker cp命令从宿主机中复制过去 apt-get update apt-get install vim 4.编辑配置文件 vim /etc/mysql/mysql.conf.d/mysqld.cnf 在文件中加入max_connections=1024

  • linux系统中修改tomcat默认输入日志路径的方法

    1.修改catalina.sh 进入tomcat安装目录/bin,找到catalina.sh,先进行备份. 对本地的catalina.sh进行修改,这里是以将日志目录修改为/data/logs为例,即将$CATALINA_BASE/logs/catalina.out改为CATALINA_OUT=/data/logs. 2.修改logging.properties 进入tomcat安装目录/conf/,找到logging.properties,先进行备份. 对本地的logging.properti

  • 在MyEclipse中修改Tomcat 6.x的端口号方法

    在使用MyEclipse进行web开发时,每次访问页面都需要输入8080的端口号, 觉得非常繁琐,就想不输入端口号来访问页面,该怎么办,就把8080的端口号改为80就行了. 在使用MyEclipse自带的Tomcat时,修改时很容易的,只需要在Window--Preferences--MyEclipse--Service-- Integrated Sanbdox--MyEclipse Tomcat 6中修改端口号8080为80就可以了. 这里的MyEclipse Tomcat 6是MyEclip

  • Linux中shell脚本获取当前工作目录的方法

    如下: workdir=$(cd $(dirname $0); pwd) 步骤1 dirname $0,取得当前执行的脚本文件的父目录 步骤2 cd到父目录,即进入当前工作目录 步骤3 pwd显示当前工作目录 以上这篇Linux中shell脚本获取当前工作目录的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Docker中Dockerfile之容器中运行MyEclipse搭建的JavaWeb项目

    这篇文章将讲述如何将上一篇文章中的Javaweb项目制作成Docker的镜像.小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 应用程序在Docker容器中运行和在物理机运行的原理是一样的,所以我们部署这个Javaweb项目到Docker中的步骤应该如下: 服务器支持(这里选择Centos7) 安装Java环境 安装Tomcat环境 将Tomcat根目录下的webapps/ROOT目录下的所有文件(夹)删除 将自己开发的web项目的WebRoot目录下的所有文件(夹)复

  • 在Docker中利用Tomcat快速部署web应用的方法示例

    在学习了docker的基本操作之后,我们就可以尝试在我们的container中部署一些基本的应用了. 这篇文章我们就来说一下怎么在docker中快速部署一个web应用. 首先肯定是要机器中安装了docker,如果没安装就是用yum install -y docker 命令安装一下 yum install -y docker 既然是部署web应用,那么当然少不了Tomcat了,所以我们应该先拉取Tomcat镜像.命令如下 docker pull tomcat 这个镜像有点大,所以可以事先拉取好,节

  • Kubernetes中使用临时容器进行故障排查的方法

    目录 前言 什么是临时容器? 临时容器的配置 启动临时容器 使用临时容器 与临时容器共享进程命名空间 结论 前言 容器及其周围的生态系统改变了工程师部署.维护和排查工作负载故障的方式.但是,在 Kubernetes 集群上调试应用程序有时可能会很困难,因为你可能在容器中找不到所需的调试工具.许多工程师使用基于精简.发行版构建无发行版的基础镜像,其中甚至没有包管理器或shell.甚至一些团队使用 scratch 作为基础镜像,并且只添加应用程序运行所需的文件.这种常见做法的一些原因是: 具有较小的

  • 查看docker中运行的JVM参数问题及解决方法

    方法一.jcmd命令: 1.jps获取java的线程id 2.jcmd pidVM.flags获取 51152:-XX:CICompilerCount=3 -XX:InitialHeapSize=526385152 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=357564416 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=175112192 -XX:OldSize=351272960 -XX:+UseCompresse

随机推荐