基础环境需要安装docker(这里不做介绍)
自动安装
使用自动部署Shell脚本
curl -sSL https://shipyard-project.com/deploy | bash -s
结果如下
[root@contract ~]# curl -sSL https://shipyard-project.com/deploy | bash -s
Deploying Shipyard
-> Starting Database
-> Starting Discovery
-> Starting Cert Volume
-> Starting Proxy
-> Starting Swarm Manager
-> Starting Swarm Agent
-> Starting Controller
Waiting for Shipyard on 10.2.2.11:8080
Shipyard available at http://10.2.2.11:8080
Username: admin Password: shipyard
不出问题的话就说明安装完毕了,通过IP:8080 访问
常见的错误
- 执行完自动部署脚本后发现容器名shipyard-rethinkdb被占用
[root@contract ~]# curl -sSL https://shipyard-project.com/deploy | bash -s
Deploying Shipyard
-> Starting Database
docker: Error response from daemon: Conflict. The container name "/shipyard-rethinkdb" is already in use by container "4168730dbc8cb055562965b1ee129047ad337158ff2593480fbf3b4088551024". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
解决方法:
删除所有相关的容器即可。
docker stop $(docker ps -a- q)
docker rm $(docker ps -a -q)
这里由于我第一次安装没有其他容器,因此我是删除了所有容器
- 启动容器是报网络错误
restartmanger wait error: driver failed programming external connectivity on endpoint shipyard-controller (5522daa5d553912455f36fef6abd42823230a6741f93593fc2b77e2cacb98031): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.17.0.3:8080 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1))
这是因为docker程序没有在iptables里创建相应的链(chain),所以需要重启iptables和docker的服务。
service iptables restart
service docker restart