`
happysoul
  • 浏览: 401788 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Centos6.5 下 Docker安装 及 错误处理

阅读更多
看了网上的安装后出现的错误
引用
Cannot connect to the Docker daemon. Is 'docker -d' running on this host?


出现错误的问题是意外断电等造成的设备没有正常退出,留下的lck文件影响正常启动


---- 前置条件 ----

查看内核
uname -r

低于3.8的内核需要升级

centos升级方法
添加内核源
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
-- 弃用 rpm -ivh http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
yum -y --enablerepo=elrepo-kernel install kernel-lt

手动下载内核只能另存为
https://www.kernel.org/
https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.10.105.tar.xz
https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el6/x86_64/RPMS/

修改
vi /etc/grub.conf
将default=1修改为default=0 (根据实际显示的去修改,默认新安装的会是0)

添加软件源
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

安装Docker
yum -y install docker-io
yum -y install device-mapper

修改配置文件(详细看最后的容器运行环境)
vi /etc/sysconfig/docker
other-args列更改为:other_args="--exec-driver=lxc --selinux-enabled"

---- 会出错的部分 ---- 由于不正常关机会导致Docker异常,需要手动处理
执行
/etc/init.d/docker status
返回
docker dead but subsys locked

需要删除 pid,sock
\rm  /var/run/docker.*
\rm  /var/lock/subsys/docker
执行
/etc/init.d/docker status
返回
docker is stopped
----

查看版本号
docker version

启动服务
service docker start


下载centos 和 ubuntu
docker pull centos
docker pull ubuntu

查看已有镜像
docker images

[root@localhost ~]# docker images    
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              latest              24c85647b066        35 hours ago        117.2 MB
centos              latest              6cc2eba34ef6        7 days ago          192.5 MB

下载文件位置
/var/lib/docker/

查看
/var/lib/docker/devicemapper/devicemapper
可以看到默认100G的data文件和2G的metadata文件,然而到了这个目录执行
du -h
可以看到
[root@localhost devicemapper]# du -h
639M    .
占用空间是根据使用逐渐变大的,并不是一次性开销

访问容器内系统
可以进入容器,所以如果能访问docker主机,ssh就不用了
docker exec -it CONTAINER_ID /bin/bash

运行jenkins
先修改映射文件的权限在启动容器
chown -R 1000:1000 /home/docker/jenkins
docker run -p 8090:8080 -p 50001:50000 -v /home/docker/jenkins:/var/jenkins_home jenkins
后台运行
docker run -d -p 8090:8080 -p 50001:50000 -v /home/docker/jenkins:/var/jenkins_home jenkins
运行          对外端口:容器内端口                        当前文件目录:容器内文件目录                     容器
停止
docker stop CPID


进入容器
docker exec -it ${CPID} /bin/bash
获取CPID
docker ps

获取jenkins的运行id
docker ps|awk 'NR>1'|grep jenkins|awk '{print $1}'



---------- 分割线 ----------

【导入导出】 参考 http://blog.csdn.net/a906998248/article/details/46236687
使用 docker ps -a 查看本机已有的容器(使用NAMES字段的值xxxx)
导出  export   docker export xxxx > /home/xxxx-export-20170414.tar
导入  import   docker import - /home/xxxx-export-20170414.tar

使用 docker images 查看本机已有镜像(使用IMAGE ID字段的值123456)
保存  save   docker save 123456 > /home/ubuntu-save-20170414.tar
加载  load   docker load < /home/ubuntu-save-20170414.tar

区别:
export 导出的镜像文件大小  小于 save保存的镜像
export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag <LAYER ID> <IMAGE NAME>);而save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。
(查看方式:docker images --tree)
导入加载进来觉得不合适可以使用 docker rm 容器ID 、 docker rmi 镜像ID 来删掉。

【删除所有的容器】
引用
docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a) 


【查看root密码】
docker容器启动时的root用户的密码是随机分配的。所以,通过这种方式就可以得到容器的root用户的密码了。
docker logs 5817938c3f6e 2>&1 | grep 'User: ' | tail -n1

---- 我是分割线 ----
大搬运 http://www.jingyuyun.com/article/13953.html
容器核心技术是指能够让 container 在 host 上运行起来的那些技术。
这些技术包括容器规范、容器 runtime、容器管理工具、容器定义工具、Registry 以及 容器 OS,下面分别介绍。

【容器规范】
容器不光是 Docker,还有其他容器,比如 CoreOS 的 rkt。为了保证容器生态的健康发展,保证不同容器之间能够兼容,包含 Docker、CoreOS、Google在内的若干公司共同成立了一个叫 Open Container Initiative(OCI) 的组织,其目是制定开放的容器规范。
目前 OCI 发布了两个规范:runtime spec 和 image format spec。
有了这两个规范,不同组织和厂商开发的容器能够在不同的 runtime 上运行。这样就保证了容器的可移植性和互操作性。
【容器运行环境 runtime】
runtime 是容器真正运行的地方。runtime 需要跟操作系统 kernel 紧密协作,为容器提供运行环境。
如果大家用过 Java,可以这样来理解 runtime 与容器的关系:
Java 程序就好比是容器,JVM 则好比是 runtime。JVM 为 Java 程序提供运行环境。同样的道理,容器只有在 runtime 中才能运行。
lxc、runc 和 rkt 是目前主流的三种容器 runtime。
lxc 是 Linux 上老牌的容器 runtime。Docker 最初也是用 lxc 作为 runtime。
runc 是 Docker 自己开发的容器 runtime,符合 oci 规范,也是现在 Docker 的默认 runtime。
rkt 是 CoreOS 开发的容器 runtime,符合 oci 规范,因而能够运行 Docker 的容器。

【容器定义工具】
容器定义工具允许用户定义容器的内容和属性,这样容器就能够被保存,共享和重建。
docker image 是 docker 容器的模板,runtime 依据 docker image 创建容器。
dockerfile 是包含若干命令的文本文件,可以通过这些命令创建出 docker image。
ACI (App Container Image) 与 docker image 类似,只不过它是由 CoreOS 开发的 rkt 容器的 image 格式。

【Registry】
容器是通过 image 创建的,需要有一个仓库来统一存放 image,这个仓库就叫做 Registry。
企业可以用 Docker Registry 构建私有的 Registry。
Docker Hub(https://hub.docker.com) 是 Docker 为公众提供的托管 Registry,上面有很多现成的 image,为 Docker 用户提供了极大的便利。
Quay.io(https://quay.io/)是另一个公共托管 Registry,提供与 Docker Hub 类似的服务。

【容器 OS】
由于有容器 runtime,几乎所有的 Linux、MAC OS 和 Windows 都可以运行容器。但这不并没有妨碍容器 OS 的问世。
容器 OS 是专门运行容器的操作系统。与常规 OS 相比,容器 OS 通常体积更小,启动更快。因为是为容器定制的 OS,通常它们运行容器的效率会更高。
目前已经存在不少容器 OS,CoreOS、atomic 和 ubuntu core 是其中的杰出代表。
分享到:
评论

相关推荐

    Centos6.5 下Docker的安装与简单配置

    Centos6.5 下Docker的安装与简单配置。。。。。。。。

    CentOS 6.5 下Docker调试过程

    CentOS 6.5 下Docker 镜像和仓库 调试过程 及依赖kernel包

    Docker Linux Centos6.5离线安装

    文件夹下还有:docker-engine-1.7.1-1.el6.x86_64.rpm 这个如果是centos6的时候用 5、启动docker服务并查看docker版本 # service docker start Starting docker (via systemctl): [ OK ] # docker -v Docker ...

    CentOs 6.5 telnet 客户端 linux 64(离线安装)

    centos 6.5 telnet 客户端 安装文件 rpm包 centos 6.5 telnet 服务端 安装文件 rpm包 http://vault.centos.org/6.5/os/x86_64/Packages/ 从官网下载亲测可以用

    Centos6.5 镜像文件下载

    ### Centos6.5镜像文件下载与安装详解 #### 一、CentOS 6.5简介 CentOS是Community ENTerprise Operating System的缩写,是一个基于Linux内核的操作系统,它主要提供了企业级的计算环境。CentOS 6.5作为CentOS 6...

    Centos6安装docker方法

    本文档包含centos6.5版本的Linux系统上安装docker的详细过程及方法

    CentOS6.5一键安装Mysql5.6

    本文将详细介绍如何在CentOS 6.5上进行MySQL 5.6的一键安装过程,包括必要的环境准备、安装步骤、配置优化以及安全设置。 一、环境准备 在开始安装之前,确保你的CentOS 6.5系统已经更新到最新,运行以下命令进行...

    centos6.5 docker内核安装文件

    centos6.5内核版本太低,docker必须在3.x上安装,yum install -y kernel-ml-aufs kernel-ml-aufs-devel vim /etc/grub.conf 修改/etc/grub.conf里default=0, reboot 重启系统

    centos 6.5下离线安装svn

    在Linux系统,特别是CentOS 6.5这样的老版本中,进行离线安装SVN(Subversion)是一项挑战,因为通常需要手动下载依赖并解决网络连接问题。以下是一份详细的步骤指南,帮助你理解如何在没有互联网连接的情况下完成这...

    Centos6.5安装教程for oracle

    ### CentOS 6.5 for Oracle 的安装与配置详解 #### 一、概述 本文将详细介绍如何在服务器上安装并配置CentOS 6.5系统,特别是针对Oracle数据库环境的优化和配置方法。CentOS 6.5是一款稳定且广泛使用的Linux发行版...

    centos6.5 邮件服务器安装视频

    centos6.5 邮件服务器安装视频 自己录制

    centos 6.5下安装文件上传下载服务

    centos 6.5下的文件上传下载服务安装和配置 centos 6.5下的文件上传下载服务是指在centos 6.5操作系统中安装和配置文件上传下载服务,以解决上传和下载文件的问题。这个服务可以让用户轻松地上传和下载文件,而不...

    在redhat6.5离线安装docker1.7所需要rpm包

    在redhat6.5离线安装docker1.7所需要rpm包

    CentOS6.5离线安装openssh8.6p1软件包-步骤及依赖.rar

    在本案例中,我们有"CentOS6.5离线安装openssh8.6p1软件包-步骤及依赖.rar"这个压缩包文件,它应该包含了openssh 8.6p1以及所有必需的依赖项。在拥有互联网连接的机器上,你需要访问OpenSSH的官方网站或者通过yum...

    CentOS6.5下CDH5.8.2本地包安装

    在CentOS6.5系统下安装CDH5.8.2,首先需要准备三台虚拟机,分别安装CentOS6.5系统。然后,需要修改主机名分别为hadoop01/hadoop02/hadoop03。修改主机名的方法有两种:一种是使用setup命令,另一种是修改vim /etc/...

    centos6.5安装教程,绝对详细,内附centos镜像等资源

    CentOS 6.5 安装教程详解 CentOS 6.5 是一个稳定、功能强大且广泛应用的 Linux 发行版,本文将详细介绍 CentOS 6.5 的安装步骤,包括虚拟机的安装、CentOS 镜像文件的下载和使用、连接工具的配置等内容。 一、...

    CentOS6.5下YUM安装最新MySQL5.7.12(王三旗亲自整理,最简单明了)

    CentOS6.5下YUM安装最新MySQL5.7.12

    CentOS6.5x64下安装19实体节点Hadoop2.2.0集群配置指南

    资源名称:CentOS 6.5 x64下安装19实体节点Hadoop 2.2.0集群配置指南内容简介: CentOS 6.5 x64下安装19实体节点Hadoop 2.2.0集群配置指南主要讲述的是CentOS 6.5 x64下安装19实体节点Hadoop 2.2.0集群配置指南;...

    U盘安装CentOS 6.5

    "U盘安装CentOS 6.5" U盘安装CentOS 6.5是相对于光盘安装的一种更快速、更方便的安装方式。使用U盘安装CentOS 6.5可以跳过刻盘的步骤,速度也更快,而且没有硬件限制(新机器USB口都有,光驱不一定有)。 U盘安装...

Global site tag (gtag.js) - Google Analytics