首页 > 代码库 > Docker的安装基本命令配置详解
Docker的安装基本命令配置详解
Docker 官网:https://docs.docker.com
Docker值得关注的特性:
文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。
资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用Cgroup。
网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。
日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
变更管理:容器文件系统,变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
交互式shell:Docker可以分配一个虚拟终端并联关联到任何容器的标准输入上,CentOS系列安装Docker,Docker支持CentOS6及以后的版本。
一、Docker的安装
1.CentOS6:
在CentOS6.5下安装Docker。
注意:要求Linux kernel至少3.8以上,并且docker只能运行在64位操作系统。
由于CentOS6.5的内核版本为2.6,因此必须要先升级内核。
(1.)yum安装带aufs模块的3.10内核
#cd /etc/yum.repos.d
#wget http://www.hop5.in/yum/el6/hop5.repo
#yum install kernel-ml-aufs kernel-ml-aufs-devel
(2.)修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置),重启系统,这时你的内核就成功升级了。
查看内核是否支持aufs:
# grep aufs /proc/filesystems
nodev aufs
对于CentOS6,可以使用EPEL库安装Docker,命令如下
#yum install httpd://mirros.yun-idc.com/epel/6/i386/epel-release-6-8.norach.rpm
#yum install docker-io
启动Docker服务
#service docker start
2.CentOS7:
Version:
Docker软件包已经包括在默认的CentOS-Extras软件源里。因此想要安装Docker,只需要运行下面的命令:
安装完成后,使用下面的命令来启动Docker服务,并将其设置为开机自启动:
查看Docker版本信息:
查看Docker版本详细信息:
以上是使用CentOS7软件源提供的docker安装程序
附:也可以按照官方文档安装Docker
1.Log into your machine as a user with sudo or root privileges。
登录到你的机器作为一个用户用sudo或root权限
2.Make sure your existing yum packages are up-to-date。
确保您现有的软件包是最新的
3.Add the yum repo。
添加一个yum源
$ sudo tee /etc/yum.repos.d/docker.repo<<-‘EOF‘
[dockerrepo]
name=DockerRepositorybaseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
注意:如果我们既想把输出结果保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了。tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中。
4.install the Docker package
安装Docker软件包
$ sudo yum install docker-engine
用yum安装Docker软件
5.Start the Docker daemon.
开启docker进程
$ sudo service docker start
启动docker服务
6. Verify docker is installed correctly by running a test image in a container.
运行一个容器验证是否安装正确
验证docker 安装正确
$ sudo docker run hello-world
docker默认使用的是unix socket
或者是直接安装官方提供好的docker软件包
docker的版本介绍:
docker 1.12:是今年docker迄今发布的最为重要的一个版本,它大大增强了docker的内置编排机制。在一直被诟病的集群的构成方面也交出了自己的答卷。虽然增加的功能让你在使用的时候有一种在使用kubernetes的感觉,但这个世界不就是这样么,你有的我也有,我有的是原生态。
docker1.11:daemon模块核心的结构体是Daemon,同v1.10.0相比增加了containerd和defaultIsolation两个变量,删除了execDriver变量。
ontainerd这个变量替换了execDriver变量,因为从1.10版本,docker已经完全放弃了对LXC容器的支持,把没有用的代码都删除掉了;defaultIsolation这个变量作用是在windows操作系统上设置容器默认隔离模式,用来更好的对windows操作系统上容器提供支持。
Docker1.11版本依赖于containerd和runC来管理容器,containerd是控制runC的后台程序,runC是Docker公司按照OCI标准规范编写的一个操作容器的命令行工具,containerd这个后台程序还可以操作满足OCI标准规范的其他容器工具,也就意味着以后只要是按照ODI标准规范开发的容器工具,都可以被containerd使用起来。使用containerd好处是,当docker daemon或者containerd两个进程crash后,应用容器不会“死掉”,未来要是实现的功能是,当containerd daemon重新启动后可以同应用容器重新建立连接。
相比1.10增加了EnableIPv6变量、Internal变量和Labels三个变量,EnableIPv6变量表示是否启用了IPv6,在创建网络时,通过POST /networks/create可以设置,Internal变量表示网络是否内部网络,Labels变量表示创建时的网络标签。
在1.11版本中Remote API相关功能变化如下:
在创建容器时,相比1.10增加了一个功能,如果linux内核版本超过了4.3,容器就支持pids cgroup,也就是可以根据cgroup限制容器中的进程数;还增加了nocopy选项,docker run -v foo:/bar:nocopy,这样就不会自动将数据从容器路径拷贝到卷路径;还修改CreateDaemonEnvironment方法,如果创建容器时使用到了Hostname变量和Domainname变量,那么在设置容器中HOSTNAME环境变量时设置的是Hostname变量,在v1.10.0中设置的是Hostname.Domainname。
Docker 1.12.3 发布了,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中
docker1.10版:
Docker Engine 支持配置热更新,容器与 Docker Daemon 的耦合性大大降低
Docker API 的完善程度稳步上升,容器隔离维度更细致、更全面
Docker 安全划时代地支持了 User Namespace 与 seccomp,安全程度直逼虚拟机
镜像格式首推「内容寻址方式」,可以做到 Docker 镜像的全球唯一性,镜像的安全与存储都有大的改观
网络能力,无论单机,还是跨主机,功能逐渐完善,成熟度稳步提升,发展之迅速不得不令人佩服
稍显惋惜的是,传统的容器管理工具 LXC 即将退出 Docker 的舞台,伴随 Docker 接近三年的时间,终于被更完善的容器管理方案取代,同时 Docker 的飞速发展以及追求卓越也一览无余
看完 Docker 1.10.0 的主要变化,我们来看一下这一版本更为细节的变化,相信 Docker Engine、安全、Distribution、网络、日志、存储卷 Volume 等多方面,总有一款适合您。
本文出自 “KANGSHUO” 博客,转载请与作者联系!
Docker的安装基本命令配置详解