1. 下载epel扩展源。 Docker对内核版本有要求

[root@docker ~]# cat /etc/redhat-release      #查看系统版本

CentOS release 6.4 (Final)

[root@docker ~]# uname -r          #查看内核版本.

2.6.32-358.el6.x86_64

[root@docker ~]# sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config     #关闭selinux

[root@docker ~]# yum update     #升级内核

[root@docker ~]# uname -r         #查看内核版本.

2.6.32-504.23.4.el6.x86_64

[root@docker ~]# cd /etc/yum.repos.d/

[root@docker yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak

[root@docker yum.repos.d]# yum install  

[root@docker yum.repos.d]# yum -y install docker-io

2. 启动docker

[root@docker ~]# /etc/init.d/docker start

[root@docker ~]# ps -ef|grep docker

root      1264     1  2 10:10 pts/0    00:00:00 /usr/bin/docker -d

root      1379  1152  0 10:11 pts/0    00:00:00 grep docker

3. 加入到开机启动

[root@docker ~]# chkconfig --add docker

[root@docker ~]# chkconfig docker on

[root@docker ~]# chkconfig --list|grep docker

docker          0:off   1:off   2:on    3:on    4:on    5:on    6:off

4. 获取镜像并下载

[root@docker~]# docker search centos          #搜索centos镜像。最好下载一个带有ssh的镜像,如 jdeathe/centos-ssh

[root@docker ~]# docker pull centos            #下载centos镜像

[root@docker ~]# docker p_w_picpaths               #显示本地已有镜像

REPOSITORY         TAG                 IMAGE ID            CREATED         VIRTUAL SIZE

centos                     7                7322fbe74aa5        5 days ago          172.2 MB
centos                centos7           7322fbe74aa5        5 days ago          172.2 MB
centos                   latest            7322fbe74aa5        5 days ago          172.2 MB

⊙ 字段一: 来自于哪个仓库.

⊙ 字段二: 镜像的标记.

⊙ 字段三: 它的ID号(唯一)

⊙ 字段四: 创建时间

⊙ 字段五: 镜像大小

5. 更改配置文件

[root@docker ~]# cat /etc/sysconfig/docker

other_args="--exec-driver=lxc --selinux-enabled"

6. 镜像相关操作

     6.1 列出、删除本地所有镜像, 显示出的依次是: 镜像所属仓库、标签名、镜像ID、创建日期、所占用空间

//列出本地镜像

[root@docker ~]# docker p_w_picpaths

REPOSITORY          TAG                   IMAGE ID                 CREATED                            VIRTUAL SIZE
centos                      7                    7322fbe74aa5        Less than a second ago             172.2 MB
centos                   centos7             7322fbe74aa5        Less than a second ago             172.2 MB
centos                   latest                7322fbe74aa5        Less than a second ago             172.2 MB

//删除本地镜像

[root@docker ~]# docker p_w_picpaths

REPOSITORY          TAG                    IMAGE ID                 CREATED                         VIRTUAL SIZE
centos                 centos7             7322fbe74aa5        Less than a second ago             172.2 MB
centos                 latest                 7322fbe74aa5        Less than a second ago             172.2 MB
centos                    7                    7322fbe74aa5        Less than a second ago             172.2 MB

[root@docker ~]# docker rmi 7322fbe74aa5

     6.2 新建、查看容器

//新建, 使用docker create命令新家你一个docker容器, 该命令新建的容器处于停止的状态.

[root@docker ~]# docker create -i -t centos:centos7 /bin/bash

be7b31298b7116cec23d50d1989c9efd0190a3ea48e7962636241a14b2ea1006
[root@docker ~]# docker create -i -t centos:centos7 /bin/bash
955906afaa98461dde09b7031abf4bf7fc242c517c4f9b06937a27c7c2d6762e

[root@docker ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES

955906afaa98        centos:7            "/bin/bash"              22 seconds ago                                                                 agitated_pike      

be7b31298b71       centos:7            "/bin/bash"              24 seconds ago                                                                 berserk_brown 

     6.3 启动新建的容器

//启动 

[root@docker ~]# docker start 955906afaa98 be7b31298b71

//查看容器的状态 

[root@docker ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED                  STATUS                         PORTS               NAMES
b456f0985baa        centos:7            "/bin/bash"              10 minutes ago       Up 2 minutes                                      desperate_banach 

b456f0985baa        centos:7            "/bin/bash"              10 minutes ago       Up 2 minutes                                      desperate_banach 

     6.4 进入新建的容器

[root@docker ~]# cd /usr/local/src/

[root@docker src]# wget 

[root@docker src]# tar -zxvf util-2.24.tar.gz

[root@docker src]# cd util-linux-2.24

[root@docker util-linux-2.24]#  ./configure --without-ncurses

[root@docker util-linux-2.24]# make nsenter

[root@docker util-linux-2.24]# cp nsenter /usr/local/bin

//进入容器 

[root@docker ~]# PID=$(docker inspect --format "` `.`State`.`Pid `" 955906afaa98)

[root@docker ~]# echo $PID
9652

[root@docker ~]# nsenter --target $PID --mount --uts --ipc --net --pid

[root@955906afaa98 /]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

     6.5 退出容器, 使用命令exit或ctrl+d.

[root@docker ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
955906afaa98         centos:7            "/bin/bash"           6 minutes ago       Up 5 minutes                             ecstatic_mccarthy  
be7b31298b71        centos:7            "/bin/bash"           6 minutes ago       Up 5 minutes                             nostalgic_mclean   
[root@docker ~]# PID=$(docker inspect --format "` `.`State`.`Pid `" 955906afaa98)
[root@docker ~]# nsenter --target $PID --mount --uts --ipc --net --pid
[root@955906afaa98 /]# logout

[root@docker ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
955906afaa98         centos:7             "/bin/bash"         6 minutes ago       Up 5 minutes                              ecstatic_mccarthy  
be7b31298b71        centos:7            "/bin/bash"         6 minutes ago       Up 5 minutes                               nostalgic_mclean   

     6.6 停止新建的容器.

//停止

[root@docker ~]# docker stop 955906afaa98

955906afaa98

//重新启动

[root@docker ~]# docker restart 955906afaa98

955906afaa98

//查看容器状态

[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
955906afaa98        centos:7              "/bin/bash"         41 minutes ago      Up 4 seconds                             ecstatic_mccarthy  
be7b31298b71      centos:7               "/bin/bash"         41 minutes ago      Up 40 minutes                           nostalgic_mclean  

     6.7 创建守护式容器

守护式容器: 没有交互式会话, 非常适合运行应用程序和服务.

//更多的时候需要,需要让docker容器在后台以守护态形式运行,用户可以通过添加-d参数来添加. 

[root@docker ~]# docker run --name daemon -d centos:centos7 /bin/bash -c "while true;do echo heelow world;sleep 1;done"

4246216f4998e631a01b993eb886f5f36a1bd71c2f91a19fc29778ef5b986f2f
[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                CREATED                  STATUS              PORTS               NAMES
4246216f4998        centos:7            "/bin/bash -c 'while     3 seconds ago         Up 2 seconds                                 daemon             
955906afaa98         centos:7            "/bin/bash"                 47 minutes ago       Up 6 minutes                              ecstatic_mccarthy  
be7b31298b71        centos:7            "/bin/bash"                 47 minutes ago       Up 46 minutes                            nostalgic_mclean

//此时用docker run只会反悔一个容器id, 必须用docker attach才能附着新的shell会话, 附着到容器会话, 显示他一直在打印heelow word

[root@docker ~]# docker attach 4246216f4998

heelow world
heelow world
heelow world

//进入守护式容器

[root@docker ~]# PID=$(docker inspect --format "``.`State`.`Pid`" 4246216f4998)

[root@docker ~]# echo $PID
10869
[root@docker ~]# nsenter --target $PID --mount --uts --ipc --net --pid

//停止守护式容器

[root@docker ~]# docker stop 4246216f4998

4246216f4998

     6.8 删除停止容器状态

[root@docker ~]# docker rm   4246216f4998

4246216f4998

//删除正在运行中的容器

[root@docker ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED                   STATUS              PORTS               NAMES
955906afaa98        centos:7            "/bin/bash"         About an hour ago     Up 32 minutes                             ecstatic_mccarthy  
be7b31298b71       centos:7            "/bin/bash"         About an hour ago     Up About an hour                        nostalgic_mclean   
[root@docker ~]# docker rm -f 955906afaa98
955906afaa98
[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED                   STATUS              PORTS               NAMES 
be7b31298b71       centos:7            "/bin/bash"         About an hour ago     Up About an hour                        nostalgic_mclean   

     6.9 导出和导入容器

//docker export命令导出

[root@docker ~]# docker export be7b31298b71 > docker.tar

[root@docker ~]# ls

anaconda-ks.cfg  docker.tar install.log  install.log.syslog 

//docker import命令导入

[root@docker ~]# cat docker.tar|docker import - test/centos:v1

85e40b1338414de073fb43d16606e4ca60c9732c4c2b8767cdf6c81d1f5b07d3

[root@docker ~]# docker p_w_picpaths

test/centos         v1                  85e40b133841        21 seconds ago           172.2 MB

#####安装、创建、导入/出写到这儿。后期接着写。