|
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管理,image管理。
优点:
支持container批量操作;
支持image管理(虽然比较薄弱)
缺点:
不支持多主机。
Shipyard
Shipyard也是完全基于Docker API,支持container管理、engine管理(一个engine就是监听tcp端口的docker daemon)。
优点:
支持多主机;
支持container及engine资源限制及图形展示;
支持container实例横向扩展;
支持批量创建;
支持创建时自动调度。
缺点:
不支持image管理;
不支持container批量操作
webui 集群管理
Shipyard 是一个基于 Web 的Dokcer 管理工具,支持多 host,可以把多个 Docker host 上的 containers统一管理;可以查看 images,甚至 build images;并提供 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
|
|
|
|
|
|
|