一、启动redis容器集群
- 执行:sudo docker run -it —name redis-master redis /bin/bash命令;
发现直接进入了bash模式,没法退出,所以命令改为:sudo docker run —name redis-master redis &
问题一:
docker: Error response from daemon: Conflict. The container name "/redis-master" is already in use by container "3dfc25d7fd12aead282919f9a9fe91dc1d17a4750e1db96dd61287512bcbd387". You have to remove (or rename) that container to be able to reuse that name.
解决一:
报这个错是因为redis-master名字被别的容器占用了。所以:
sudo docker container ls --all(可看出被那个容器占用以及容器的状态信息)
sudo docker rm redis-master
sudo docker run --name redis-master redis
解决二:
redis-master就是你想启动的容器:
sudo docker start/restart redis-master
- docker run —name redis-slave1 —link redis-master:master redis &
- docker run —name redis-slave2 —link redis-master:master redis &
redis会有默认挂载
二、启动APP
1.执行:
$ sudo docker run -it —name APP1 —link redis-master:db -v ~/Projects/Django/App1:/usr/src/app django /bin/bash
其中:
-v(相当于挂载):当前主机的~/Projects/Django/App1目录和docker中的/usr/src/app
/django建立map关系。任何在~/Projects/Django/App1目录下的操作,都
可以再docker中通过ls /usr/src/app下面看到
启动APP不知道为啥,需要两步,并且要跟着/bin/bash才能启动起来;
启动APP1:
1) $ sudo docker run -it --name APP1 --link redis-master:db -v /app/developers/liq/docker/App1:/usr/src/app django /bin/bash &
2) $ sudo docker start APP1
启动APP2:
1) $ sudo docker run -it --name APP2 --link redis-master:db -v /app/developers/liq/docker/App2:/usr/src/app django /bin/bash &
2) $ sudo docker start APP2
三、启动代理
研究发现也需要两步:
$ sudo docker run -it --name HAProxy --link APP1:APP1 --link APP2:APP2 -p 6301:6301 -v /app/developers/liq/docker/HAProxy:/usr/src/HAProxy haproxy /bin/bash &
$ sudo docker start HAProxy