linux下docker容器存放磁盘空间迁移

linux下docker容器存放磁盘空间迁移,第1张

docker在centOS下默认会安装在/var/lib/docker/目录下, 这个目录的容量不大,创建的容器或镜像多了就无法使用了。

目录迁移记录如下(更改到/home/docker下):

1、停止docker服务。

2、创建新的docker目录,执行命令df -h,找一个大的磁盘。我的是放在/home目录下面,我的/home目录大小有900G。 我在 /home目录下面建了 /home/docker/lib目录,执行的命令是:

3、迁移/var/lib/docker目录下面的文件到 /home/docker/lib下面

注意:如果文件内容很多的话,为了确保成功最好是一个文件一个文件的拷贝。如果在拷贝过程中报“设备上没有空间”的错误,就使用mv剪切。

4、修改docker配置(/etc/systemd/system/docker.service.d/devicemapper.conf),在文件末添加 --graph=/home/docker/lib

devicemapper.conf文件的内容如下:

注意:如果/etc/systemd/system/docker.service.d/devicemapper.conf,这个路径找不到的话,就新建,新建之后加入内容,没有私服地址的话就可以去掉”--insecure-registry=私服地址”。

5、重载配置,重启docker

6、启动成功后,确定容器没问题后删除/var/lib/docker/目录中的文件,然后就OK了。

当前Ubuntu 系统下的 Docker 的安装包只提供64位。如果你想运行32位的 Docker,你需要。

安装 Docker

通过 apt-get 安装 Docker 简直是小菜一碟。

$ sudo apt-get install docker.io

如果你不是 root 组的用户,你可以把自己加入到 docker 用户组。下面的命令可以让没有 root 权限的用户使用 Docker:

$ sudo usermod -a -G docker $USER

重新登录,以便让你的用户组权限生效。

下一步是编辑 Docker 配置文件,确定 Docker 可执行文件的路径:

$ sudo vi /etc/default/docker.io

DOCKER= /usr/bin/docker.io

重启 Docker 服务:

$ sudo service docker.io restart

管理 Docker Container 容器

如果你想在新的 Docker 容器下创建一个新的 Ubuntu *** 作系统,你首先需要 pull 一个 的 Docker 镜像。下面的命令可以通过网络下载 Docker 镜像:

$ docker pull ubuntu

你可以使用下面的命令启动 Docker 里面的 Ubuntu 系统。最后的参数 /bin/bash 表示一旦容器启动,首先会执行简单的 bash。

$ docker run -i -t ubuntu /bin/bash

上面的命令会立即启动 Ubuntu container 容器(这是一个完美的容器!),然后它会提供一个 shell 提示符运行环境给你。现在开始你可以通过这个沙箱环境访问一个完整的 Ubuntu 系统了。

输入 exit 命令退出 Docker 容器。

你也可以用下面的命令进入不同的系统。比如 Fedora:

$ docker.io run -i -t fedora /bin/bash

如果系统中还不存在 Fedora Docker 镜像,这个命令会自动下载它,然后启动这个 Fedora 的 Docker 容器。

如果你想要开启指定版本的系统,比如 Ubuntu 13.04,你可以使用下面的命令:

$ docker.io run -i -t ubuntu:13.04 /bin/bash

Container 容器网络设置

Docker 使用 Linux 桥接技术与其他容器通信,以及连通外网。安装完 Docker 后你应该可以看到 docker0 这个网桥,这是 Docker 默认创建的。你创建的每个容器都会通过这个网桥连接到网络。

自定义 Linux 网桥

如果你想自定义网桥,你可以执行以下步骤。你可以在这个网桥后面分配一个子网,并为这个子网分配地址。下面的命令会为 Docker 子网分配 10.0.0.0/24 地址段:

$ sudo apt-get install bridge-utils

$ sudo brctl addbr br0

$ sudo ifconfig br0 10.0.0.1 netmask 255.255.255.0

然后在 /etc/default/docker.io 文件的 DOCKER_OPTS 变量里添加 -b=br0 选项,并重启 Docker 服务:

$ sudo service docker.io restart

到目前为止,任何创建的容器都会连上 br0 网桥,它们的 IP 地址会从 10.0.0.0/24 中自动分配(译注:在10.0.0.2到10.0.0.254之间随机分配)。

其他自定义设置

你可以通过 /etc/default/docker.io 文件的 DOCKER_OPTS 变量设置其他一些属性:

-dns 8.8.8.8 -dns 8.8.4.4 : 为容器指定 DNS 服务器。

-icc=false : 将容器与其他容器隔离出来

疑难解答

1、当你运行 docker.io 命令时,你可能会遇到以下问题:

dial unix /var/run/docker.sock: no such file or directory

这个错误可能是由于 Docker 后台进程没有启动。检查下 Docker 后台进程的状态,确认它已经处于启动状态:

$ sudo service docker.io status$ sudo service docker.io start

单的说,Linux是Unix克隆(Unix clone)或Unix风格(Unix alike)

的 *** 作系统(OS),在原代码级上兼容绝大部分Unix标准(指的是IEEE

POSIX,System V,BSD),是一个支持多用户, 多进程,多线程,实时性

较好的功能

强大而稳定的 *** 作系统.它可以运行在x86 PC,Sun Sparc,Digital Alpha

,680x0,PowerPC, MIPS等平台上,可

以说Linux是目前运行硬件平台最多的 *** 作系统. Linux最大的特点在于

它是GNU(Gnu's Not Unix----有点分形与混沌的意味----无限自包含,

简单的说GNU是一种自由软件体系)的一员,遵循公共版权许可证(GPL),秉承

"自由的思想,开放的源码"的原则,成千上万的专家/爱好者通过Internet

在不断地完善并维护它,可以说Linux是计算机爱好者自己的 *** 作系统.

追述Linux的历史直到1990年,Linus Torvalds还是芬兰赫尔辛基大

学的一名学生,最初是用汇编语言写了一个在80386保护模式下处理

多任务切换的程序,后来从Minix(Andy Tanenbaum教授所写的很小

的Unix *** 作系统,主要用于 *** 作系统教学)得到灵感,进一步产生了

自认为狂妄的想法----写一个比Minix更好的Minix,于是开始写了

一些硬件的设备驱动程序,一个小的文件系统,......,这样0.0.1

版本的Linux就出来了,但是它只具有 *** 作系统内核的勉强的雏形,

甚至不能运行,你必须在有Minix的机器上编译以后才能玩.这时候

Linus已经完全着迷而不想停止,决定踢开Minix,于是在1991年10

月5号发布Linux 0.0.2版本,在这个版本中已经可以运行bash

(the GNU Bourne Again Shell----一种用户与 *** 作系统内核通讯的软件)

和gcc(GNU C 编译器).从一开始,Linus就决定自由扩散Linux,包括原代码,

他在comp.os.minix新闻讨论组里发布Linux 0.0.2时写到:

"Do you pine for nice days of Minix-1.1, when mem were men

and wrote their own device drivers? Are you without a nice

project and just dying to cut your teeth on a OS you can

try to modify for your needs? Are you finding it frustrsting

when everything works on Minix? No more all-nighters to

get a nifty program working? Then this post might be just

for you.

"As I mentioned a month ago, I'm working on a free version

of a Minix-lookalike for AT-386 computers. It has finally

reached the stage where it's even usable(though may not be

depending on what you want),and I am willing to put out

the sources for wider distribution. It is just version

0.0.2 ... but I've successfully run bash,gcc,gnu-make,

gnu-sed,compress,etc.under it."

随即Linux引起黑客们(hacker)的注意,通过计算机网络加入了Linux的

内核开发,Linux倾向于成为一个黑客的系统----直到今天,在Linux社区

里内核的开发被认为是真正的编程.由于一批高水平黑客的加入,使Linux

发展迅猛,到1993年底94年初,Linux 1.0终于诞生了! Linux 1.0已经是一

个功能完备的 *** 作系统,而且内核写得紧凑高效,可以充分发挥硬件的性能,

在4M内存的80386机器上也表现得非常好,至今人们还在津津乐道于此,

不过自从2.1.xx系列的内核Linux开始走高端的路子----硬件的发展太快了,

但是Linux不会失去它的本色.Linux具有良好的兼容性和可移植性,大约在

1.3版本之后,开始向其他硬件平台上移植,包括号称最快的CPU---Digital

Alpha(至少目前主频是最高的).所以不要总把Linux与低档硬件平台联系

到一块,Linux发展到今天,这是一个误区,它只是将硬件的性能充分发挥

出来而已,Linux必将从低端应用横扫到高端应用!

在Linux的发展历程上还有一件重要的事:Linux加入GNU并遵循公共

版权许可证(GPL).此举大大加强了GNU和Linux,几乎所有应用的GNU

库/软件都移植到Linux,完善并提高了Linux的实用性,而GNU有了一

个根基,我现在也搞不清楚到底是GNU Linux呢还是基于Linux的GNU.

:-) 更重要的是遵循公共版权许可证,在继承自由软件的精神的前

提下,不再排斥对自由软件的商业行为(如把自由软件打包以光盘形

式出售),不排斥商家对自由软件进一步开发,不排斥在Linux上开发

商业软件.从此Linux又开始了一次飞跃,出现了很多的Linux发行版

,如Slackware,Redhat,Suse,TurboLinux,OpenLinux等十多种,而且

还在增加,注意你不能说"Redhat Linux""Suse Linux""Slackware

Linux"等等,Linux主要指 *** 作系统内核,对所有发行版内核原代码

都是一样的(但集成的内核版本可能因发行时间不同而有所不同).

还有一些公司在Linux上开发商业软件或把其他Unix平台的软件移

植到Linux上来,如今很多IT业界的大腕如IBM,Intel,Oracle,Infomix

,Sysbase,Corel,Netscape,CA,Novell等都宣布支持Linux! 商家的

加盟弥补了纯自由软件的不足和发展障碍,Linux迅速普及到广大计

算机爱好者,并且进入商业应用,正是打破某些公司垄断文化圈的希

望所在!!

Linux是爱好者们通过Internet协同开发出来的,当然它的网络功能十

分强大,比如你可以通过ftp,nfs等来安装Linux,用它来做网关等等.

随着Linux的发展衍生出来的应用恐怕出乎Linus本人最初的预料,

如有人用它来做路由器,有人来做嵌入式系统,有人来做实时性系统.

.....常有新手问Linux能做什么,其实它不象那些中看不中用的 *** 作

系统,不在于你用它能干什么,而在于你想干什么!

Linux的兴起还给人们很多启迪与思考,如集市式软件开发的讨论,

又如自由软件的精神......

.

参考资料:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7362812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存