如何在CentOS6.5直接在系统中安装系统Docker

如何在 CentOS 7 上安装 Docker
Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单。容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止。Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上万的节点。
容器和 VM(虚拟机)的主要区别是,容器提供了基于进程的隔离,而虚拟机提供了资源的完全隔离。虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短。容器使用宿主操作系统的内核,而虚拟机使用独立的内核。
Docker 的局限性之一是,它只能用在 64 位的操作系统上。
在这篇文章中我们将讨论如何在 CentOS 7.x 中安装 docker。
CentOS 7 中 Docker 的安装
Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:
[root@localhost ~]# yum install docker
启动 Docker 服务
安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:
[root@localhost ~]# service docker start
[root@localhost ~]# chkconfig docker on
(LCTT 译注:此处采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法,如下:
[root@localhost ~]# systemctl
start docker.service
[root@localhost ~]# systemctl
enable docker.service
下载官方的 CentOS 镜像到本地 (LCTT 译注:由于 Docker 被墙 :-& ,所以请使用
&的,感谢 &的镜像。 )
[root@localhost ~]# docker pull centos
Pulling repository centos
d36: Download complete
70441cac1ed5: Download complete
ae0c2d0bdc10: Download complete
c5a: Download complete
5b12ef8fd570: Download complete
确认 CentOS 镜像已经被获取:
[root@localhost ~]# docker images centos
REPOSITORY
VIRTUAL SIZE
2 weeks ago
70441cac1ed5
2 weeks ago
ae0c2d0bdc10
2 weeks ago
ae0c2d0bdc10
2 weeks ago
运行一个 Docker 容器:
[root@localhost ~]# docker run -i -t centos /bin/bash
[root@dbfd /]#
我们可以看到,CentOS 容器已经被启动,并且我们得到了 bash 提示符。在 docker 命令中我们使用了 &-i 捕获标准输入输出&和 &-t 分配一个终端或控制台&选项。若要断开与容器的连接,输入 exit。
[root@cdc /]# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)
[root@cdc /]# exit
[root@localhost ~]#
我们还可以搜索基于 Fedora 和 Ubuntu 操作系统的容器。
[root@localhost ~]# docker search ubuntu
[root@localhost ~]# docker search fedora
显示当前正在运行容器的列表
作者: 译者: 校对:
原创翻译, 荣誉推出
上一篇:下一篇:
来自 - 北京 的 Safari/Linux 用户 发表于
10:55 的评论:
安装应该是yum -y install docker-io
并且要卸载掉前面安装的docker #yum remove docker
建议看看docker官方文档
您说的安装 docker-io 应该是 CentOS 6的情况,在 CentOS 7上,Docker 已经正式收录到CentOS-Extras 库内,名字已经是 docker 了。
http://wiki.centos.org/Cloud/Docker
共计翻译: 14 篇
| 共计贡献: 683 天
贡献时间: -&
Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单。容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止。Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上万的节点。 容器和 VM(虚拟机)的主要区别是,容器提供了基于进程的隔离,而虚拟机提供了资源的完全隔离。虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短。容器使用宿主操作系统的内核,而虚拟机使用独立的内核。 Docker 的局限性之一是,它只能用在 64 位的操作系统上。
在这篇文章中我们将讨论如何在 CentOS 7.x 中
分享到微信
打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。
请将我们加入您的广告过滤器的白名单,请支持开源站点。谢谢您。Centos6.5安装docker - liujun的博客 - CSDN博客
Centos6.5安装docker
&1.查看系统的内核版本
2.对内核版本进行升级
1)导入 public key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
导入成功是没有信息的!
2)ELRepo安装(网上有一些引用过时会报404,这个不会)
3)安装内核版本
在yum的ELRepo源中,有mainline(3.13.1)、long-term(3.10.28)这2个内核版本,考虑到long-term更稳定,会长期更新,所以选择这个版本。
yum --enablerepo=elrepo-kernel install kernel-lt -y
4) vim /etc/grub.conf
编辑grub.conf文件,修改Grub引导顺序 &将default=1改为default=0
5)保存后,重启reboot,查看内核版本 内核版本已经升级
3.安装docker
1)安装yum源
yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
2)docker安装
yum install docker-io
3)启动docker
启动命令:service docker start
查看版本命令:docker version
此时发现只启动了客户端而服务端没有启动!!!
查看log发现报错!!!
vim /etc/log/docker
可以看出是这个libdevmapper版本的问题
升级后再次运行docker就好了
升级yum upgrade device-mapper-libs
再次启动查看版本OK
&4.docker验证hello-world
命令 docker run hello-world 由于本地没有hello-world镜像,就会下载一个hello-world镜像在容器内运行
参考链接:/docker/centos-docker-install.html
/saneri/p/6178536.html
我的热门文章1083人阅读
Docker(7)
CentOS(3)
本来,对于 CentOS 系列,Docker 官方要求要 CentOS7.0 及以上系统版本,但是有时候迫不得已,还是要在已有的 CentOS6.x 的系统上安装。
比如我遇到的:要在一台已有的 CentOS6.5 的服务器上部署一个 Java 应用,该 Java 应用基于 Java8 和 Mysql5.6 开发,都用到了相应的特性。但是,已有的 CentOS6.5 上已经在跑着几个 PHP 和 Java 应用了,装的 JDK 是 JDK7,Mysql 装的是 Mysql5.1,第一感觉就是要 GG 了!
好在,Docker 强大的软硬件隔离特性要发挥威力了!好,就走 Docker 这条路!剩下的问题也就变成了 Docker & Docker Compose 的安装问题了!
本文基于以下两篇文章而成,并结合自己遇到的坑写的。
一、安装 Docker
这一节主要来自于:
以下 命令都是在 root 权限下运行的。
Docker是Enterprise Linux(EPEL)的额外包的一部分,EPEL是用于RHEL发行版的非标准包的社区库。首先,我们将安装EPEL仓库:
# rpm -iUvh http:
更新 yum 源:
# yum update -y
现在让我们通过安装 docker-io 软件包来安装 Docker:
# yum -y install docker-io
安装完成后,我们需要启动 Docker 守护进程:
# service docker start
最后,可选地,我们让 Docker 在服务器启动时启动:
# chkconfig docker on
经过以上步骤,Docker 就已经安装成功了!来跑跑试试:
下载一个 CentOS image:
# docker pull centos
现在,要设置一个带有 bash shell 的基本 centos 容器,我们只需运行一个命令。 docker 运行将在新容器中运行命令,-i 连接上 stdin 和 stdout,-t 分配一个 tty,我们使用标准的 fedora 容器。
# docker run -i -t centos /bin/bash
就这样!你现在在一个 centos Dockers 容器里面使用一个 bash shell。
要断开或分离 shell 而不退出,使用 Ctrl-p + Ctrl-q。(注:就是先按 Ctrl + p,再按 Ctrl + q)。
以上就是在 CentOS6.5 中安装 Docker 的过程了。
二、安装 Docker Compose
这一节主要来自于:
Docker Compose 是 Python 写的一个可以同时管理多个 Docker容器 的工具。因为是 CentOS6.x,所以没办法直接安装该工具,要通过 Python 的 pip 管理器工具来安装。
一般 CentOS6.5 都自带了 Pyhton2.6,所以要先安装 Python2.7。
2.1、安装开发工具和Python2.7
# yum groupinstall "Development"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
# wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz
# tar -xvf Python-2.7.8.tar.xz
# cd Python-2.7.8
# ./configure --prefix=/usr/local
# make && make altinstall
# mv /usr/bin/python /usr/bin/python2.6.6
# ln -s /usr/local/bin/python2.7 /usr/bin/python
vi /usr/bin/yum CHANGE to python2.6.6
以上是通过源码方式安装了 Python2.7,倒数第三行的命令,把系统原有的 python 程序重命名成 python2.6.6;倒数第二行命令,把 python2.7 程序链接/替换到原有的 python 程序。倒数第一行并不是一个命令,只是说明要把 /usr/bin/yum yum 程序的第一行声明,改成原有的 python2.6.6。即:
#!/usr/bin/python
import sys
#!/usr/bin/python2.6.6
import sys
一句话来说就是:升级了 Python 版本,但是 yum 程序还是用回原来的 Python 版本。
2.2、安装 pip
原文里的 get-pip.py 这个下文件的下载地址过期了,新地址是: 。所以命令改为如下:
# wget https://bootstrap.pypa.io/get-pip.py
# python get-pip.py
2.3、安装 docker-compose
# pip install docker-compose
顺利的话,以上步骤走完,就完成了 docker-compose 的安装了,验证一下是否安装成功了,查看版本信息:
# docker-compose version
三、我遇到的坑
3.1、pip 版本问题
执行 2.3节 的 pip install docker-compose 是遇到错误提示:
pkg_resources.DistributionNotFound: The 'pip==8.1.0' distribution was not found and is required by the application
和启发,我运行 whereis pip 命令发现调用的是 /usr/bin/pip,查看其内容:
打印出如下:
__requires__ = 'pip==8.1.0'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
load_entry_point('pip==8.1.0', 'console_scripts', 'pip')()
但是考虑到:
# ll /usr/local/lib/python2.7/site-packages | grep pip
打印如下:
drwxr-xr-x 10 root root
4096 Jun 16 13:08 pip
drwxr-xr-x
2 root root
4096 Jun 16 13:08 pip-9.0.1.dist-info
就把 /usr/bin/pip 里的所有 8.1.0 改为 9.0.1,然后 pip 就正常了。具体为啥,我也不太清楚了,不懂 Python 的路过。。
我猜是因为,python get-pip.py 安装了 pip 之后,但是 /usr/bin/pip 里面调用的还是旧版本好的 pip 导致的。
3.2、docker-compose 版本问题
上面 2.3节 的 pip install docker-compose 执行之后就安装了 docker-compose。
但是当运行 docker-compose build 的时候,就会提示我们的 Dcoker 版本太低要求升级 Docker!默认安装的 docker-compose 版本太高了!显然我们目前的处境是无法再升级 Docker 的了,只能降 docker-compose 的版本。
先看一下我们已经安装的 Docker 版本:
# docker -v
Docker version 1.7.1, build 786b29d/1.7.1
Google 了一下,在 StackOverflow 上找到个降 docker-compose 版本的方法:
经查 ,发现 docker-compose 1.5.2 版本是兼容 Docker 1.7.1 的:Note that Compose 1.5.2 requires Docker 1.7.1 or later.。
好了,开始降级 docker-compose,先卸载:
# pip uninstall docker-compose
再安装指定版本:
# pip install docker-compose==1.5.2
至此,docker-compose 降版本成功!
3.3、docker-compose.yml 版本问题
解决完 docker-compse 版本问题适配之后,对着已有的 docker-compose.yml 执行“,会提示不能正常识别 docker-compose.yml 文件中的内容。究其原因,是因为我们的 docker-compose 1.5.2 只支持 V1 版本的 docker-compose.yml ,那么好,把现在 V2 版本的 docker-compose.yml 改成 V1 版本的格式。
V1 版本的 docker-compose.yml 只被支持到 docker-compose 1.6.x。再往后的 docker-compose 版本就不再支持 V1 版本的 docker-compose.yml。
先看文档:。
V1 版本的 docker-compose.yml 文件格式主要区别就是:
- 没有开头的 version 声明
- 没有 services 声明
- 不支持 depends_on
- 不支持命名的 volumes, networks, build arguments 声明
- 其他我没用到的所以没细究的区别
来个例子比较直观吧!
V2 版本的 docker-compose.yml
version: "2"
image: "redis:alpine"
- "./data/redis/data:/data"
build: ./builds/mysql
- "./data/mysql/data:/var/lib/mysql"
- "./data/mysql/conf:/etc/mysql/conf.d"
restart: always
environment:
MYSQL_DATABASE: solar
MYSQL_USER: root
MYSQL_PASSWORD: Huofigo2015
MYSQL_ROOT_PASSWORD: Huofigo2015
depends_on:
context: ./builds/api
- "./target/solar-app-0.0.1-SNAPSHOT.jar:/app/solar-app.jar"
entrypoint:
- "/app/solar-app.jar"
restart: always
改成 V1 版本的 docker-compose.yml 后
image: "redis:alpine"
- "./data/redis/data:/data"
build: ./builds/mysql
- "./data/mysql/data:/var/lib/mysql"
- "./data/mysql/conf:/etc/mysql/conf.d"
restart: always
environment:
MYSQL_DATABASE: solar
MYSQL_USER: root
MYSQL_PASSWORD: Huofigo2015
MYSQL_ROOT_PASSWORD: Huofigo2015
build: ./builds/api
- "./target/solar-app-0.0.1-SNAPSHOT.jar:/app/solar-app.jar"
entrypoint:
- "/app/solar-app.jar"
restart: always
至此,终于搞定了!也是挺折腾 ):
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:144956次
积分:1918
积分:1918
排名:千里之外
原创:51篇
转载:12篇
评论:24条
(1)(3)(2)(2)(2)(2)(1)(3)(6)(4)(3)(2)(6)(3)(6)(1)(4)(1)(1)(1)(2)(1)(1)(1)(1)(6)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'鎵?竴鎵?紝璁块棶寰?ぞ鍖

我要回帖

更多关于 直接在系统中安装系统 的文章

 

随机推荐