爲了保持宿主主機的環境乾淨,因此將docker-compose安裝到一個基於centos7.3的容器之中,因爲tianchao屏蔽了amazonaws,最後選擇了通過pip方式來安裝,這也是官方推薦的一種安裝方式。https://pip.pypa.io/en/stable/installing/
第一步:
安裝CentOS7.3的image創建container並進入container之中,因爲平時linux是選擇centos作爲開發機的。
sudo docker pull centos:7.3.1611
sudo docker run --name devCentos73 -it -v /var/run/docker.sock:/var/run/docker.sock -v /mnt/xvdb1/dockerDisk/centos7.3:/data -d centos:7.3.1611
sudo docker exec -it <containerIDOrName> bash
第二步:
在容器之中安裝pip,因爲CentOS7.3已經自帶了Python 2.7.5,並且安裝docker-compose
curl -L https://bootstrap.pypa.io/get-pip.py > get-pip.py
python get-pip.py
pip install docker-compose
卸載docker-compose可以使用pip uninstall docker-compose
驗證是否安裝成功
[root@132ddea267ef data]# docker-compose --version
docker-compose version 1.11.2, build dfed245
第三步:
新建一個docker-compose.yml
測試是否可以連上宿主docker server。
mkdir composeTest
cd composeTest/
vi docker-compose.yml
version: '2'
services:
redis:
image: redis:alpine
運行docker-compose up &
[root@132ddea267ef composeTest]# docker-compose up &
[1] 223
[root@132ddea267ef composeTest]# Creating composetest_redis_1
Attaching to composetest_redis_1
redis_1 | 1:C 28 Mar 02:24:51.130 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
redis_1 | _._
redis_1 | _.-``__ ''-._
redis_1 | _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit
redis_1 | .-`` .-```. ```\/ _.,_ ''-._
redis_1 | ( ' , .-` | `, ) Running in standalone mode
redis_1 | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
redis_1 | | `-._ `._ / _.-' | PID: 1
redis_1 | `-._ `-._ `-./ _.-' _.-'
redis_1 | |`-._`-._ `-.__.-' _.-'_.-'|
redis_1 | | `-._`-._ _.-'_.-' | http://redis.io
redis_1 | `-._ `-._`-.__.-'_.-' _.-'
redis_1 | |`-._`-._ `-.__.-' _.-'_.-'|
redis_1 | | `-._`-._ _.-'_.-' |
redis_1 | `-._ `-._`-.__.-'_.-' _.-'
redis_1 | `-._ `-.__.-' _.-'
redis_1 | `-._ _.-'
redis_1 | `-.__.-'
redis_1 |
redis_1 | 1:M 28 Mar 02:24:51.134 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
redis_1 | 1:M 28 Mar 02:24:51.134 # Server started, Redis version 3.2.8
redis_1 | 1:M 28 Mar 02:24:51.134 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis_1 | 1:M 28 Mar 02:24:51.134 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
redis_1 | 1:M 28 Mar 02:24:51.134 * The server is now ready to accept connections on port 6379
第四步:
驗證是否安裝成功,進入宿主主機執行命令
grj@GrjServer ~/command $ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b4a04bf9cdef redis:alpine "docker-entrypoint.sh" 8 seconds ago Up 7 seconds 6379/tcp composetest_redis_1
美中不足的是,系統啓動的時候,container不能自動啓動,這個問題我是使用systemd來解決的,只是覺得還是麻煩。
注:沒有把踩的坑給列出來,如遇到解決不了的問題歡迎留言諮詢。