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的兴起还给人们很多启迪与思考,如集市式软件开发的讨论,
又如自由软件的精神......
.
参考资料:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)