centos6.5 docker,docker用什么系统好
老铁们,大家好,相信还有很多朋友对于centos6.5 docker和docker用什么系统好的相关问题不太懂,没关系,今天就由我来为大家分享分享centos6.5 docker以及docker用什么系统好的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
如何在CentOS6.5系统中安装Docker
开始安装docker之旅:
[root@localhost~]# uname-r
2.6.32-431.el6.x86_64
[root@localhost~]# cat/etc/issue
CentOS release 6.5(Final)
Kernel\r on an\m
注意其他的源可能导致你的内核和docker的版本不一致,需要升级内核至3.x。
安装:
[root@localhost~]# rpm-ivh raproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Retrievingg/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
warning:/var/tmp/rpm-tmp.JN76fI: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing.。。###########################################[100%]
1:epel-release###########################################[100%]
[root@localhost~]# rpm--import/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[root@localhost~]# yum-y install docker-io
启动并设置开机自动启动
[root@localhost~]# service docker start
Starting cgconfig service:[确定]
Starting docker:[确定]
[root@localhost~]# chkconfig docker on
获取cnetos镜像
[root@localhost~]# docker pull centos:latest
centos:latest: The image you are pulling has been verified
511136ea3c5a: Pull complete
5b12ef8fd570: Pull complete
34943839435d: Downloading[===》] 18.38 MB/232.5 MB 1h7m49s
#官方安装方式docker pull imagename从docker的索引中心下载,imagename是镜像名称,例如docker pull Ubuntu就是下载base ubuntu并且tag是latest。
我们还可以搜索基于 Fedora和 Ubuntu操作系统的容器。
[root@localhost~]# docker search ubuntu
[root@localhost~]# docker search fedora
查看docker镜像
[root@localhost~]# docker images centos
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest 34943839435d Less than a second ago 224 MB
运行docker运行shell
[root@localhost~]# docker run-i-t centos/bin/bash
[root@2ce733141ece/]#
[root@2ce733141ece/]#
[root@2ce733141ece/]#
[root@2ce733141ece/]#
停止容器
[root@localhost~]# docker stop《CONTAINER ID》
删除所有容器
docker rm$(docker ps-a-q)
查看docker的子命令,直接敲docker或完整的docker help就可以
常用命令
总结一下常用命令:
其中《》阔起来的参数为必选,[]阔起来为可选
docker version查看docker的版本号,包括客户端、服务端、依赖的Go等
docker info查看系统(docker)层面信息,包括管理的images, containers数等
docker search在docker index中搜索image
docker pull从docker registry server中下拉image
docker push推送一个image或repository到registry
docker push:TAG同上,指定tag
docker inspect查看image或container的底层信息
docker images TODO filter out the intermediate image layers(intermediate image layers是什么)
docker images-a列出所有的images
docker ps默认显示正在运行中的container
docker ps-l显示最后一次创建的container,包括未运行的
docker ps-a显示所有的container,包括未运行的
docker logs查看container的日志,也就是执行命令的一些输出
docker rm删除一个或多个container
docker rm `docker ps-a-q`删除所有的container
docker ps-a-q| xargs docker rm同上,删除所有的container
docker rmi删除一个或多个image
docker start/stop/restart开启/停止/重启container
docker start-i启动一个container并进入交互模式
docker attach attach一个运行中的container
docker run使用image创建container并执行相应命令,然后停止
docker run-i-t/bin/bash使用image创建container并进入交互模式, login shell是/bin/bash
docker run-i-t-p将container的端口映射到宿主机的端口
docker commit[repo:tag]将一个container固化为一个新的image,后面的repo:tag可选
docker build
寻找path路径下名为的Dockerfile的配置文件,使用此配置生成新的image
docker build-t repo[:tag]同上,可以指定repo和可选的tag
docker build-使用指定的dockerfile配置文件,docker以stdin方式获取内容,使用此配置生成新的image
docker port查看本地哪个端口映射到container的指定端口,其实用docker ps也可以看到。
CentOS6.x上部署Docker容器环境的全流程攻略
Docker.io是轻量级的容器引擎+映像仓库,在LXC(linux轻量级容器)的基础上构建,可以运行任何应用程序。
docker.io的核心层由以下几个部分组成:
1、可执行程序,/usr/bin/docker
2、docker.io网站上有一系列创建好的操作系统和应用程序映像
3、AUFS(另一个统一文件系统)来实现文件系统的快照,文件变化,控制只读或读写的需求。
4、LXC(Linux轻量级容器)
5、Cgroups(各种资源和命名空间的管理)
在本文写作的时候,最新版本是0.5.3,但目前开发很活跃,一些功能和特性可能在新版本中会发生变化。
需要注意的是CentOS 6.5与7.0的安装是有一点点不同的,CentOS-6上docker的安装包叫docker-io,并且来源于Fedora epel库,这个仓库维护了大量的没有包含在发行版中的软件,所以先要安装EPEL,而CentOS-7的docker直接包含在官方镜像源的Extras仓库(CentOS-Base.repo下的[extras]节enable=1启用)。前提是都需要联网,具体安装过程如下。
1.禁用selinux
[/code]
# getenforce
enforcing
# setenforce 0
permissive
# vi/etc/selinux/config
SELINUX=disabled
...
[/code]
2.安装 Fedora EPEL
epel-release-6-8.noarch.rpm包在发行版的介质里面已经自带了,可以从rpm安装。
复制代码
代码如下:
# yum install epel-release-6-8.noarch.rpm
//或
yum-y install
如果出现GPG key retrieval failed: [Errno 14] Could not open/read 问题,请在线安装epel,下载RPM-GPG-KEY-EPEL-6文件。
这一步执行之后,会在/etc/yum.repos.d/下生成epel.repo、epel-testing.repo两个文件,用于从Fedora官网下载rpm包。
3.检查内核版本
复制代码
代码如下:
# uname-r
2.6.32-431.el6.x86_64
# cat/etc/redhat-release
CentOS release 6.5(Final)
看到这个最低的内核版本,事实运行起来是没太大问题的,你也可以升级到3.10.x版本。
另外你也可以运行脚本check-config.sh,来检查内核模块符不符合(下面有些missing的,我的docker还是可以正常启动):
复制代码
代码如下:
[root@sean~]#./check-config
warning:/proc/config.gz does not exist, searching other paths for kernel config...
info: reading kernel config from/boot/config-2.6.32-431.el6.x86_64...
Generally Necessary:
- cgroup hierarchy: properly mounted [/cgroup]
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_DEVPTS_MULTIPLE_INSTANCES: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_MACVLAN: enabled
- CONFIG_VETH: enabled
- CONFIG_BRIDGE: enabled
- CONFIG_NF_NAT_IPV4: missing
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: missing
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled
- CONFIG_NF_NAT: enabled
- CONFIG_NF_NAT_NEEDED: enabled
Optional Features:
- CONFIG_MEMCG_SWAP: missing
- CONFIG_RESOURCE_COUNTERS: enabled
- CONFIG_CGROUP_PERF: enabled
- Storage Drivers:
-"aufs":
- CONFIG_AUFS_FS: missing
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
-"btrfs":
- CONFIG_BTRFS_FS: enabled
-"devicemapper":
- CONFIG_BLK_DEV_DM: enabled
- CONFIG_DM_THIN_PROVISIONING: enabled
- CONFIG_EXT4_FS: enabled
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
假如你是自己编译内核,请特别留意几个绝对不能缺少的:DM_THIN_PROVISIONING、IP_NF_TARGET_MASQUERADE、NF_NAT。(AUFS_FS没有对应选项,还不清楚怎么回事,但不是必须)
4.安装 docker-io
复制代码
代码如下:
# yum install docker-io
Dependencies Resolved
===========================================================================================
Package
Arch Version Repository Size
===========================================================================================
Installing:
docker-io
x86_64 1.1.2-1.el6 epel 4.5 M
Installing for dependencies:
lua-alt-getopt noarch 0.7.0-1.el6 epel 6.9 k
lua-filesystem x86_64 1.4.2-1.el6 epel 24 k
lua-lxc
x86_64 1.0.6-1.el6 epel 15 k
lxc
x86_64 1.0.6-1.el6 epel 120 k
lxc-libs
x86_64 1.0.6-1.el6 epel 248 k
Transaction Summary
===========================================================================================
Install 6 Package(s)
许多文档介绍到这里,下一步为挂载/cgroup文件系统,我的docker版本为1.1.2,没有修改/etc/fstab的步骤。
5.启动试运行
复制代码
代码如下:
# service docker start
//或
# docker-d
6.以守护模式运行docker.io(在一个新的终端里)
复制代码
代码如下:
[root@localhost~]# docker-d
2013/08/21 07:47:07 WARNING: Your kernel does not support cgroup swap limit.
2013/08/21 07:47:07 Listening for HTTP on/var/run/docker.sock(unix)
7.在centos6.4容器里输出hello world
复制代码
代码如下:
[root@localhost~]# docker run centos:6.4 echo"hello world"
2013/08/21 07:48:41 POST/v1.4/containers/create
2013/08/21 07:48:41 POST/v1.4/containers/c6bc9e80097e/start
2013/08/21 07:48:41 POST/v1.4/containers/c6bc9e80097e/attach?logs=1stderr=1stdout=1stream=1
hello world
8.从容器里测试ping
复制代码
代码如下:
[root@localhost~]# docker-dns'8.8.8.8' run centos:6.4 ping-c 3 yahoo.com
2013/08/21 08:02:15 POST/v1.4/containers/create
2013/08/21 08:02:15 POST/v1.4/containers/c40a1244f9bc/start
2013/08/21 08:02:15 POST/v1.4/containers/c40a1244f9bc/attach?logs=1stderr=1stdout=1stream=1
PING yahoo.com(98.138.253.109) 56(84) bytes of data.
64 bytes from ir1.fp.vip.ne1.yahoo.com(98.138.253.109): icmp_seq=1 ttl=48 time=323 ms
64 bytes from ir1.fp.vip.ne1.yahoo.com(98.138.253.109): icmp_seq=2 ttl=48 time=329 ms
64 bytes from ir1.fp.vip.ne1.yahoo.com(98.138.253.109): icmp_seq=3 ttl=49 time=302 ms
--- yahoo.com ping statistics---
3 packets transmitted, 3 received, 0% packet loss, time 2304ms
rtt min/avg/max/mdev= 302.032/318.318/329.656/11.807 ms
9.异常
在我的一次安装过程中,很不幸遇到下面的问题:
docker-d启动,或tail-f/var/log/docker查看日志
复制代码
代码如下:
[f32e7d9f]+job initserver()
[f32e7d9f.initserver()] Creating server
[f32e7d9f]+job serveapi(unix:///var/run/docker.sock)
2014/10/22 13:02:45 Listening for HTTP on unix(/var/run/docker.sock)
Error running DeviceCreate(createPool) dm_task_run failed
[f32e7d9f]-job initserver()= ERR(1)
2014/10/22 13:02:45 Error running DeviceCreate(createPool) dm_task_run failed
\nWed Oct 22 14:35:54 CST 2014\n
再或者是service docker restart
复制代码
代码如下:
Stopping docker:
[ OK ]
Starting cgconfig service: Error: cannot mount cpuset to/cgroup/cpuset: Device or resource busy
/sbin/cgconfigparser; error loading/etc/cgconfig.conf: Cgroup mounting failed
Failed to parse/etc/cgconfig.conf
[FAILED]
Starting docker:
[ OK ]
全选复制放进笔记Unable to enable network bridge NAT: iptables failed: iptables-I POSTROUTING-t nat-s 172.17.42.1/16!-d 172.17.42.1/16-j MASQUERADE: iptables v1.4.7: can't initialize iptables table `nat': Table does not exist(do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
如何在CentOS6.5上安装docker1.9及以上版本
docker toolbox for windows v1.12.6官方版
安装教程
1、打开docker toolbox下载软件压缩包文件,点击“DockerToolbox.exe”安装程序
2、设置安装目录
3、选择需要安装的组件,如果您是新手,建议选择“Full installation”,完全版安装
4、安装模式设置,用户可以根据自己的需求选择即可
5、设置完毕,点击“Install”按钮,等待安装完毕即可
6、注意:在安装过程中,会出现几个其他的安装过程,如Ocracle Corporation等系列软件,全部选择安装即可,如下图所示:
7、点击Docker Quickstart Terminal图标,从而打开一个Docker Toolbox terminal
8、打开terminal后,terminal会自动进行一些设置,需要点时间,全部完成后,会出现如下的结果
9、在$后输入各种docker命令就可以使用docker了,如:查看docker的版本信息,输入:$ docker info
10、登陆docker Hub的账号
11、输入用户名和密码
提示:在使用docker时,是否登陆没有特别大的影响,只不过是,如果登陆了,就可以向docker hub上push自己的镜像了