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 docker3. 加入到开机启动
[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 MBcentos centos7 7322fbe74aa5 5 days ago 172.2 MBcentos 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 SIZEcentos 7 7322fbe74aa5 Less than a second ago 172.2 MBcentos centos7 7322fbe74aa5 Less than a second ago 172.2 MBcentos latest 7322fbe74aa5 Less than a second ago 172.2 MB//删除本地镜像
[root@docker ~]# docker p_w_picpaths
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEcentos centos7 7322fbe74aa5 Less than a second ago 172.2 MBcentos latest 7322fbe74aa5 Less than a second ago 172.2 MBcentos 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/bash955906afaa98461dde09b7031abf4bf7fc242c517c4f9b06937a27c7c2d6762e[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES955906afaa98 centos:7 "/bin/bash" 22 seconds ago agitated_pike
be7b31298b71 centos:7 "/bin/bash" 24 seconds ago berserk_brown6.3 启动新建的容器
//启动
[root@docker ~]# docker start 955906afaa98 be7b31298b71
//查看容器的状态
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb456f0985baa centos:7 "/bin/bash" 10 minutes ago Up 2 minutes desperate_banachb456f0985baa 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 $PID9652[root@docker ~]# nsenter --target $PID --mount --uts --ipc --net --pid
[root@955906afaa98 /]# cat /etc/redhat-releaseCentOS Linux release 7.1.1503 (Core)6.5 退出容器, 使用命令exit或ctrl+d.
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES955906afaa98 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 NAMES955906afaa98 centos:7 "/bin/bash" 6 minutes ago Up 5 minutes ecstatic_mccarthy be7b31298b71 centos:7 "/bin/bash" 6 minutes ago Up 5 minutes nostalgic_mclean6.6 停止新建的容器.
//停止
[root@docker ~]# docker stop 955906afaa98
955906afaa98//重新启动
[root@docker ~]# docker restart 955906afaa98
955906afaa98//查看容器状态
[root@docker ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES955906afaa98 centos:7 "/bin/bash" 41 minutes ago Up 4 seconds ecstatic_mccarthy be7b31298b71 centos:7 "/bin/bash" 41 minutes ago Up 40 minutes nostalgic_mclean6.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 -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES4246216f4998 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 worldheelow worldheelow world//进入守护式容器
[root@docker ~]# PID=$(docker inspect --format "``.`State`.`Pid`" 4246216f4998)
[root@docker ~]# echo $PID10869[root@docker ~]# nsenter --target $PID --mount --uts --ipc --net --pid//停止守护式容器
[root@docker ~]# docker stop 4246216f4998
4246216f49986.8 删除停止容器状态
[root@docker ~]# docker rm 4246216f4998
4246216f4998//删除正在运行中的容器
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES955906afaa98 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 955906afaa98955906afaa98[root@docker ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES be7b31298b71 centos:7 "/bin/bash" About an hour ago Up About an hour nostalgic_mclean6.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_picpathstest/centos v1 85e40b133841 21 seconds ago 172.2 MB
#####安装、创建、导入/出写到这儿。后期接着写。