CentOS6.5下docker的安装及遇到的问题和简单使用
Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。利用Linux的LXC、AUFS、Go语言、cgroup实现了资源的独立,可以很轻松的实现文件、资源、网络等隔离,其最终的目标是实现类似PaaS平台的应用隔离。
Docker值得关注的特性:
文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。
资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。
网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。
日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次***互shell。
Docker通常用于如下场景:
web应用的自动化打包和发布;
自动化测试和持续集成、发布;
在服务型环境中部署和调整数据库或其他的后台应用;
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
本文介绍如何在RedHat/CentOS环境下安装Docker。官方文档要求Linux kernel至少3.8以上,且docker只能运行在64位的系统中。由于RHEL6和CentOS6的内核版本为2.6,因此必须要先升级内核。
下面以CentOS6.5(64位)为例,介绍下docker安装步骤和使用方法:
一、升级内核(带aufs模块,记住一定要升级,要不然会出现很多莫名奇怪的问题,建议用yum安装)
1、yum安装带aufs模块的3.10内核(或到这里下载kernel手动安装:http://down.51cto.com/data/1903250)
|
1
2
3
|
cd /etc/yum.repos.d wget http://www.hop5.in/yum/el6/hop5.repoyum install kernel-ml-aufs kernel-ml-aufs-devel |
2、修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置)。

3、重启系统,这时候你的内核就成功升级了。
|
1
2
|
[root@localhost ~]# uname -r3.10.5-3.el6.x86_64 |
查看内核是否支持aufs:
|
1
2
|
[root@localhost ~]# grep aufs /proc/filesystemsnodev aufs |
二、安装docker
1、首先关闭selinux:|
1
2
|
setenforce 0 sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config |
2、在Fedora EPEL源中已经提供了docker-io包,下载安装epel:
|
1
2
|
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpmsed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo |
3、yum安装docker-io:
|
1
|
yum -y install docker-io |

4、启动docker:
|
1
|
service docker start |

5、查看docker版本:

查看docker日志:
|
1
|
cat /var/log/docker |
三、docker命令的使用
1、直接输入docker命令来查看所有的Options和Commands。
查看某一个command的详细使用方法:docker COMMAND --help

2、搜索可用的docker镜像:docker search NAME

3、下载镜像:docker pull NAME[:TAG]
比如获取最新的centos镜像:docker pull centos:latest
注意:这里要写用docker search搜索到的完整的镜像名。 4、查看安装的镜像:docker images [NAME]

5、在docker容器中运行命令:docker run IMAGE [COMMAND] [ARG...]
docker run命令有两个参数,一个是镜像名,一个是要在镜像中运行的命令。
注意:IMAGE=REPOSITORY[:TAG],如果IMAGE参数不指定镜像的TAG,默认TAG为latest。
在刚刚下载的镜像中输出"hello word":docker run centos echo 'hello world!'
6、列出容器:docker ps -a
查看最近生成的容器:docker ps -l
查看正在运行的容器:docker ps
7、显示容器的标准输出:docker logs CONTAINERID
无需拷贝完整的id,一般写最开始的三至四个字符即可。

8、在容器中安装新程序,比如安装ifconfig命令(centos7默认没有ifconfig):docker run centos yum install net-tools -y(卡住了,用下面的另一个命令可行)
如果yum不指定-y参数的话,yum命令会进入交互模式,需要用户输入命令来进行确认,在docker环境中是无法响应这种交互的。但使用docker run的-i -t参数就会响应这种交互,用户可以输入命令了,比如:docker run -i -t centos yum install net-tools
9、保存对容器的修改并生成新的镜像:docker commit CONTAINERID [REPOSITORY[:TAG]]
REPOSITORY参数可以是新的镜像名字,也可以是旧的镜像名;如果和旧的镜像名和TAG都相同,会覆盖掉旧的镜像。

10、停止正在运行的容器:docker stop CONTAINERID
默认等待10秒钟再杀死指定容器。可以使用-t参数来设置等待时间。

11、查看容器或镜像的详细信息:docker inspect CONTAINERID|IMAGE
参数可以是容器的ID或者是镜像名(NAME:TAG)。

12、删除容器:docker rm CONTAINERID
查看所有容器ID:docker ps -a -q
删除所有的容器:docker rm $(docker ps -a -q)
13、删除镜像:docker rmi IMAGE

14.查看docker的信息,包括Containers和Images数目、kernel版本等。

四、创建容器并登入的操作
1、创建一个新容器并登入:docker run -i -t IMAGE /bin/bash
使用image创建container并进入交互模式,login shell是/bin/bash,现在可以自由的对容器进行操作了。最后使用exit退出容器。
注意:如果IMAGE参数不指定TAG,默认TAG为latest。
2、启动一个退出的容器:docker start CONTAINERID
3、attach到运行中的容器:docker attach CONTAINERID

转自http://blog.csdn.net/wuzhilon88/article/details/41621285
CentOS6.5下docker的安装及遇到的问题和简单使用的更多相关文章
- CentOS6.5下docker的安装及遇到的问题和简单使用(已实践)
转载自 CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS. Go语言.c ...
- CentOS6下docker的安装和使用
CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS.Go语言.cgroup ...
- Windows和Centos下Docker的安装配置
Windows和Centos下Docker的安装配置 windows环境下的安装(win10) 在Windows系统上需要利用toolbox来安装Docker,现在 Docker 有专门的 Win10 ...
- CentOS-6.6下Tomcat-7.0安装与配置(Linux)
CentOS-6.6下Tomcat-7.0安装与配置(Linux) 一.认识tomcat Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目, ...
- Centos系统下Docker的安装
一.检查内核版本 安装Docker,需要linux内核大于3.10 使用uname -r 来检查 二. Centos系统下Docker的安装 1. 安装需要的软件包 yum install -y yu ...
- centos6.8下redis的安装和配置
centos6.8下redis的安装和配置 下载.安装 在redis官网可以获取到最新版本的redis 进入/usr/local/目录,执行如下命令 wget http://download.redi ...
- CentOS6.5下源码安装多个MySQL实例及复制搭建
多实例安装本节是在CentOS6.5下源码安装MySQL5.6.35的基础上,在同一台机器增加一个MySQL实例.参考Centos中安装多个mysql数据的配置实例,安装目录为/usr/local/m ...
- Centos6.5下docker 环境搭建
一.运行docker Linux内核版本需要在3.8以上,针对centos6.5 内核为2.6的系统需要先升级内核.不然会特别卡,退出容器. 在yum的ELRepo源中,有mainline(3.13. ...
- windows下Docker的安装
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
随机推荐
- Sql FAQ
1.查询结果根据条件翻译成其他值 then '及格' else '不及格' end from S_STUDENT then '及格' else '不及格' end from S_STUDENT 2.s ...
- Mozilla NPAPI开发示例之一(VS2012 + Win7(64位))
入门级的NPAPI开发. NPAPI & NPRuntime 简介 Netscape Plugin Application Programming Interface (NPAPI) NPAP ...
- 143. Sort Colors II
最后更新 一刷 class Solution { public void sortColors2(int[] colors, int k) { // write your code here if ( ...
- Oracle- 用户管理
Oracle一个数据库里可以分配多个用户,用户创建自己的表,自己创建的表如果不想分配给其他用户使用,其他用户是看不到自己的创建的表的. 用户管理: 创建用户: create user chunxiao ...
- 使用ProcDump在程序没有响应时自动收集dump
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用ProcDump在程序没有响应时自动收集dump.
- Java从设计模式[本场比赛状态转换武器]状态分析(State)模式
如果我们正在做一个实时战略游戏.我们设计了一个武器,他制作只是当步兵,但他能够切换武器.第一个开关会变成弓箭手,第二个开关导通控股装甲盾牌,第三开关变成步兵--如何实现这一目标切换机构?我们开始思考, ...
- tcp_tw_reuse 与 net.ipv4.tcp_tw_recycle
最近发现几个监控用的脚本在连接监控数据库的时候偶尔会连不上,报错: Couldn't connect to host:3306/tcp: IO::Socket::INET: connect: Cann ...
- How does CCFileUTils::fullPathForFilename work
OverView The purpose of this document is show you how does function CCFileUtils::fullPathForFilename ...
- PHP第四章数组2
$str =array("dd"=>"d","dc"=>"ds","dd"=>&q ...
- Android开发--UI之Bundle的使用
Android开发–UI之Bundle的使用 最近,把之前学过的东西大体的整理了以下,并且想把学过的心得分享给大家.我自己做了一个小小的demo,以便说明具体的应用. 这里的两个界面是通过第一个界面输 ...