`
happysoul
  • 浏览: 405146 次
  • 性别: 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包

    Centos6.5下安装Oracle 11g.docx

    CentOS 6.5 下安装 Oracle 11g 本文档旨在指导用户在 CentOS 6.5 操作系统下安装 Oracle 11g 数据库management system。安装过程中需要满足一定的硬件和软件要求,并进行相应的网络设置和 RPM 依赖包安装。 一、...

    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 ...

    Centos6.5 镜像文件下载

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

    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安装docker方法

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

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

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

    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 邮件服务器安装视频 自己录制

    CentOs6.5镜像源

    CentOs6.5镜像源

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

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

    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集群配置指南;...

Global site tag (gtag.js) - Google Analytics