centos7 安装docker

1:查看内核

$ uname -r

2:用root用户登录操作系统进行更新packages

$ sudo yum update

3:启用overlay

sudo tee /etc/modules-load.d/overlay.conf <<-'EOF'

overlay

EOF

4:重启操作系统


reboot

5:确认 overlay启用

$ lsmod | grep overlay

6:添加yum repo

sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'

[dockerrepo]

name=Docker Repository

baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/

enabled=1

gpgcheck=1

gpgkey=https://yum.dockerproject.org/gpg

EOF

7:配置docker 使用overlay

$ sudo mkdir -p /etc/systemd/system/docker.service.d && sudo tee /etc/systemd/system/docker.service.d/override.conf <<- EOF

[Service]

ExecStart=

ExecStart=/usr/bin/docker daemon --storage-driver=overlay -H fd://

EOF

8.安装docker engine,daemon和service

sudo yum install --assumeyes --tolerant docker-engine-1.9.1 docker-engine-selinux-1.9.1

sudo systemctl start docker

sudo systemctl enable docker


我们开始搭建:

1、下载 swarm 镜像

docker pull swarm


2、创建一个clusterid(集群id)

docker run --rm swarm create


返回一个集群id,我们记录为:

90ea5a1796146652c67eee21ba90a153

3、启动集群管理docker实例(每个实例都需要做3,4两步)

启动另外一个docker实例,监听外网的2375端口

docker -H tcp://0.0.0.0:2375 --daemon=true --pidfile=/var/run/docker_2375.pid --graph="/var/lib/docker_2375"


或者

nohup docker -H tcp://0.0.0.0:2375 --daemon=true --pidfile="/var/run/docker_2375.pid" --graph="/var/lib/docker_2375" &


4、启动agent

启动swarm的agent,并和之前的2375端口对接上,如果有多个docker实例,就在多台机器上启动这个玩意

docker run -d swarm join --addr=10.14.40.112:2375 token://90ea5a1796146652c67eee21ba90a153 


5、启动swarm的管理器

docker run -d -p 2376:2375 swarm manage token://90ea5a1796146652c67eee21ba90a153 


这里我们让manager监听2376端口


6、测试是否成功

我们执行如下命令,查看集群的信息:

docker -H tcp://127.0.0.1:2376 info

打印如下:


Nodes: 1


 xxxx: 10.14.40.112:2375

  └ Containers: 3

  └ Reserved CPUs: 0 / 2

  └ Reserved Memory: 0 B / 3.93 GiB


docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker






功能及使用体验方面


两者各有优缺点,比较适合配合使用。


DockerUI

DockerUI基于Docker API,提供等同Docker命令行的大部分功能,支持container管理,p_w_picpath管理。


优点:

支持container批量操作;

支持p_w_picpath管理(虽然比较薄弱)


缺点:

不支持多主机。





Shipyard

Shipyard也是完全基于Docker API,支持container管理、engine管理(一个engine就是监听tcp端口的docker daemon)。


优点:

支持多主机;

支持container及engine资源限制及图形展示;

支持container实例横向扩展;

支持批量创建;

支持创建时自动调度。


缺点:

不支持p_w_picpath管理;

不支持container批量操作




webui 集群管理

Shipyard 是一个基于 Web 的Dokcer 管理工具,支持多 host,可以把多个 Docker host 上的 containers统一管理;可以查看 p_w_picpaths,甚至 build p_w_picpaths;并提供 RESTful API 等等。 Shipyard 要管理和控制 Docker host 的话需要先修改 Docker host 上的默认配置使其支持远程管理。


docker远程管理支持

Shipyard 要管理和控制 Docker host 的话需要先修改 Docker host 上的默认配置使其支持远程管理。修改配置文件 docker.conf

vim /etc/default/docker

添加一行:


DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"




重启docker服务


service docker restart

docker -d




获取shipyard

docker pull sh ipyard/shipyard

docker pull shipyard/rethinkdb




部署shipyard

RethinkDB

启动一个RethinkDB数据卷实例:


docker run -it -d --name shipyard-rethinkdb-data --entrypoint /bin/bash shipyard/rethinkdb -l

启动包含数据卷的RethinkDB的容器:


docker run -it -P -d --name shipyard-rethinkdb --volumes-from shipyard-rethinkdb-data shipyard/rethinkdb Shipyard

启动Shipyard:


 

Shipyard将创建一个默认账号,用户名:admin,密码:shipyard。使用该密码登陆:http://<your-host-ip>:8080