> RedHat >

RedHat下安装Docker

目录[-]

  • 记录几个有用的网站
  • Docker安装笔记
  •  一、禁用selinux
  • 二、安装Fedora EPEL源
  •  三、添加hop5.repo源
  •  四、安装Docker
  • yum安装
  • [X] 升级带aufs模块的3.10内核((可选)(这个步骤我没做)
  •  安装docker(做了)
  • rpm手工安装:(没做....)
  •  五、初步验证docker
  •  六 、启动docker服务:
  • 下载镜像:docker pull fedora:latest
  •  进入到了容器,执行了一下exit整个终端(putty)就关闭了,目前正在找客服。
  • [X] 七 、查找映象(没做):
  • [X] 八 、进入 Docker 容器(没做):
  • [X] 附录:低版本的Redhat(6.3)可能要手动挂载cgroup(没做)

记录几个有用的网站

1:http://segmentfault.com/a/1190000000366923

2:http://yuedu.baidu.com/ebook/d817967416fc700abb68fca1?pn=8&pa=1

3:http://wenku.baidu.com/link?url=AdAOMEMdzjc1BmHEBe_gXE0rKqIh_lgfheUDKNljYA7eJv-HPbdx-Oq4XghEErzBa5aPqwzOGh-sVvId0WlxU9oLyRbqm-Op1GS8gz5NFFq

Docker安装笔记

 

 一、禁用selinux

由于Selinux和LXC有冲突,所以需要禁用selinux.编辑/etc/selinux/config,设置两个关键变量.

SELINUX=disabledSELINUXTYPE=targeted

 

二、安装Fedora EPEL源

yum install http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpmr
或者: #pm -ivh ./epel-release-6-8.noarch.rpm

 

 三、添加hop5.repo源

cd /etc/yum.repos.d      
wget http://www.hop5.in/yum/el6/hop5.repo    
或者: # cp ./hop5.repo /etc/yum.repos.d

 

 四、安装Docker

 

yum安装

 

[X] 升级带aufs模块的3.10内核((可选)(这个步骤我没做)
yum install kernel-ml-aufs kernel-ml-aufs-devel
  1. 修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置)。

  2. 重启系统reboot now,

  3. 然后执行uname -r,查看是否已经是3.10内核!

    [root@localhost  ~]# uname -r 
    3.10.5-3.el6.x86_64

  4. 执行grep aufs /proc/filesystems,查看内核是否支持aufs!

    [root@localhost  ~]# grep aufs /proc/filesystems 
    nodev aufs

 

 安装docker(做了)
yum install redhat-lsb
yum install iptables
chkconfig ip6tables offchkconfig iptables offservice ip6tables stop
service iptables stop
yum install device-mapper-libs
yum install libcgroup*
yum install docker-io

如果报错(实际安装中没有报错):Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

解决办法是编辑/etc/yum.repos.d/epel.repo,把基础的恢复,镜像的地址注释掉#baseurlmirrorlist
改成
baseurl#mirrorlist然后执行: yum clean all
```
============================================================================================================================================================================================================================================= Package                                                       Arch                                                  Version                                                       Repository                                           Size
=============================================================================================================================================================================================================================================Installing: docker-io                                                     x86_64                                                1.2.0-3.el6                                                   epel                                                4.2 MInstalling 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 kTransaction Summary
=============================================================================================================================================================================================================================================Install       6 Package(s)
Downloading Packages:
(1/6): docker-io-1.2.0-3.el6.x86_64.rpm                                                                                                                                                                               | 4.2 MB     00:02
(2/6): lua-alt-getopt-0.7.0-1.el6.noarch.rpm                                                                                                                                                                          | 6.9 kB     00:00
(3/6): lua-filesystem-1.4.2-1.el6.x86_64.rpm                                                                                                                                                                          |  24 kB     00:00
(4/6): lua-lxc-1.0.6-1.el6.x86_64.rpm                                                                                                                                                                                 |  15 kB     00:00
(5/6): lxc-1.0.6-1.el6.x86_64.rpm                                                                                                                                                                                     | 120 kB     00:00(6/6): lxc-libs-1.0.6-1.el6.x86_64.rpm                                                                                                                                                                                | 248 kB     00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

rpm手工安装:(没做....)

先执行

rpm --nodeps -ev $(rpm -qa | grep -i 'device-mapper-libs-')
rpm --nodeps -ev $(rpm -qa | grep -i 'device-mapper-')
rpm --nodeps -ev $(rpm -qa | grep -i 'device-mapper-event-libs-')
rpm --nodeps -ev $(rpm -qa | grep -i 'device-mapper-event-')
rpm -ivh ./device-mapper-event-1.02.90-2.el6.x86_64.rpm ./device-mapper-event-libs-1.02.90-2.el6.x86_64.rpm ./device-mapper-1.02.90-2.el6.x86_64.rpm ./device-mapper-libs-1.02.90-2.el6.x86_64.rpm

再执行

rpm -ivh ./lxc-libs-1.0.6-1.el6.x86_64.rpmrpm -ivh ./lua-alt-getopt-0.7.0-1.el6.noarch.rpmrpm -ivh ./lua-filesystem-1.4.2-1.el6.x86_64.rpmrpm -ivh ./lua-lxc-1.0.6-1.el6.x86_64.rpmrpm -ivh ./lxc-1.0.6-1.el6.x86_64.rpm#6.4版本以下需要 rpm -ivh ./libcgroup-0.40.rc1-5.el6.x86_64.rpmrpm -ivh ./docker-io-1.3.2-2.el6.x86_64.rpm

 

 五、初步验证docker

输入docker -h,如果有如下输出,就证明docker在形式上已经安装成功.

# docker -h 
Usage of docker: 
  -D=false: Enable debug mode 
  -H=[]: Multiple tcp://host:port or unix://path/to/socket to bind in daemon mode, single connection otherwise 
  -api-enable-cors=false: Enable CORS headers in the remote API   -b="": Attach containers to a pre-existing network bridge; use 'none' to disable container networking  -bip="": Use this CIDR notation address for the network bridge's IP, not compatible with -b 
  -d=false: Enable daemon mode 
  -dns=[]: Force docker to use specific DNS servers 
  -g="/var/lib/docker": Path to use as the root of the docker runtime 
  -icc=true: Enable inter-container communication 
  -ip="0.0.0.0": Default IP address to use when binding container ports 
  -iptables=true: Disable docker's addition of iptables rules 
  -p="/var/run/docker.pid": Path to use for daemon PID file  -r=true: Restart previously running containers 
  -s="": Force the docker runtime to use a specific storage driver 
  -v=false: Print version information and quit

 

 六 、启动docker服务:

service docker start#docker -d -H unix:///var/run/docker.sock

 

下载镜像:docker pull fedora:latest

下载成功后执行了

 docker run -i -t fedora /bin/bash

 进入到了容器,执行了一下exit整个终端(putty)就关闭了,目前正在找客服。

 

[X] 七 、查找映象(没做):

docker search 映象名字 
从index.docker.io搜寻所需镜像. 
去https://index.docker.io获取镜像相关的信息.

 

[X] 八 、进入 Docker 容器(没做):

创建vi /bin/docker-enter.sh

#!/bin/shif [ -e $(dirname "$0")/nsenter ]; then
  # with boot2docker, nsenter is not in the PATH but it is in the same folder
  NSENTER=$(dirname "$0")/nsenterelse
  NSENTER=nsenterfiif [ -z "$1" ]; then
  echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"
  echo ""
  echo "Enters the Docker CONTAINER and executes the specified COMMAND."
  echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."else
  PID=$(docker inspect --format "{{.State.Pid}}" "$1")  if [ -z "$PID" ]; then
    exit 1
  fi
  shift
  OPTS="--target $PID --mount --uts --ipc --net --pid --"
  if [ -z "$1" ]; then
    # No command given.
    # Use su to clear all host environment variables except for TERM,
    # initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
    # and start a login shell.
    "$NSENTER" $OPTS su - root  else
    # Use env to clear all host environment variables.
    "$NSENTER" $OPTS env --ignore-environment -- "$@"
  fifi

加上可执行chmod +x /bin/docker-enter.sh 
运行docker-enter.sh <container id>,这样就进入到指定的容器中!

 

[X] 附录:低版本的Redhat(6.3)可能要手动挂载cgroup(没做)

我们首选禁用cgroup对应服务cgconfig.

  service cgconfig stop # 关闭服务 
  chkconfig cgconfig off # 取消开机启动

然后挂载cgroup,可以命令行挂载

  mount -t cgroup none /cgroup  #仅本次有效

或者修改配置文件,编辑/etc/fstab,加入

none                    /cgroup                 cgroup  defaults        0 0


(责任编辑:IT)