您的位置:首页 > 运维架构 > Docker

(二)Docker的安装(2-1)

2016-10-19 10:23 253 查看
Docker安装比较简单,没有太多前提条件,直接YUM就可以安装,当然你也可以选择编译安装,但是这就降低了安装包的可维护性。我们这里主要说YUM安装方式。
Docker只能安装在RHEL6(CentOS 6)以上版本且只能是64位操作系统。我们这里以CentOS 7为例并安装Docker。同时也推荐使用CentOS 7来使用或学习Docker。

检查内核版本:
uname -a



查看发行版版本:
lsb_release -a



检查Device Mapper:
grep device-mapper /proc/devices



或者使用
rpm -qa device-mapper



如果没有可以使用下面的命令进行安装(Red Hat中默认会被安装)
yum -y install device-mapper
延伸知识:什么是device-mapper?其实这个是graph diver的一种(aufs、devicemapper、vfs等)。它本身就是Linux系统内核中支持的功能,它实现了虚拟块设备,路径是/dev/mapper,我们知道在Linux的LVM中可以做卷的快照、卷的RAID等,都是用device-mapper这个框架来实现的。看下图:




脚本安装
运行下面的脚本,其实它会自动添加一个docker.repo源

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -



查看,你发现这里的版本号不是之前看到那个1.12这种类型,在2017年docker的版本发生了重大变化,版本从13.x升级到17.03。Dcoker每三个月发布一个稳定版,17.03、17.06以此类推。
17.03.0.ce中的ce表示是社区版本,EE则是企业版本。
rpm -qa docker*




启动Docker守护进程:
systemctl start docker.service



可以使用下面的命令查看docker进程是否运行,Docker进程以root权限运行,用于处理普通用户无法完成的工作,比如加载文件系统。docker程序是Docker的客户端程序,同样也需要使用root来运行。

docker info



默认的PID和SOCK套接字位置在:/var/run/下面,Docker使用docker.sock这个Unix套接字来监听本地用户请求。也就是说默认情况下只能使用本地Docker客户端或者Docker API对Dokcer进程发起请求,因为默认使用了本地UNIX套接字,而不会监听任何网络端口,你使用netstate命令就会发现,找不到docker监听的网络端口,只能找到套接字。所以要想通过远程主机也可以连接,就需要开启一个监听端口。



配置Docker守护进程:
为了让远程可以连接到Docker需要开启监听端口,这里有2种方式,一个是临时生效直到Docker进程结束;另外一个是修改配置文件永久生效。
临时生效:
docker -H tcp://IP:PORT -d &
让Docker进程在指定的IP和端口上监听,IP也可以写成0.0.0.0表示本机任何网络接口。那么客户端如果连接进来也需要使用-H来指定要连接的IP和端口。
如果启动进程时只写TCP的,那么你的本地连接将没有(也就是没有UNIX套接字),如果同时需要,则还需要指定套接字路径,我这里就使用了默认路径,你也可以写另外的路径。
docker daemon -H IP:PORT -H unix:///var/run/docker.sock -d &
#建议使用下面的命令,这两个命令的效果相同。
dockerd -H 0.0.0.0:5555 -H unix:///var/run/docker.sock &
#dockerd命令是专门用于启动docker守护进程的,里面有很多选项可以使用。


查看监听端口和套接字
netstat -nap | grep docker


客户端远程连接方式如下:
docker -H IP:PORT COMMAND


永久生效:
修改Docker守护进程的配置文件,默认是/usr/lib/systemd/system/docker.service文件,修改参数添加如下。
含义是ExecStart的参数所设置的值将会被传递给dockerd命令用于启动守护进程。



重启服务,使用如下命令查看
systemctl start docker.service
ss -nap | grep docker




其他命令:
查看Docker信息
docker info
查看Docker进程是否在运行
systemctl status docker.service



查看Docker版本
docker version



连接Docker:

docker -H IP:PORT COMMAND
docker COMMAND
下面是查看本地有哪些镜像,2个命令效果相同,第一个命令是通过网络方式获取信息,第二个命令是通过本地套接字方式连接docker进程来获取信息。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  安装 部署 Docker