安装Docker

回复 收藏
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 http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
[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

1.png


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

2.png


[root@docker ~]# docker images               #显示本地已有镜像
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 images
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 images
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 新建、查看容器
[url=]//新建,[/url] 使用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 启动新建的容器
[url=]//启动[/url]
[root@docker ~]# docker start 955906afaa98 be7b31298b71
[url=]//查看容器的状态[/url]
[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 https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz
[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
[url=]//进入容器 [/url]
[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 10869 --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 images

test/centos         v1                  85e40b133841        21 seconds ago           172.2 MB

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

2015-06-30 16:05 举报
已邀请:
0

狠懒

赞同来自:

我顶~~
0

田埂上的梦

赞同来自:


{:4_91:} 来的真快
0

wangzai

赞同来自:

学习

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: