問題緣由
本來是 docker 虛擬機運行著好好的绰垂,突然報錯:
Unable to query docker version: Get https://192.168.99.100:2376/v1.15/version: x509: certificate has expired or is not yet valid
很顯然可以看到certificate has expired
字樣堕担,網上查了半天沛豌,docker-machine regenerate-certs
和docker-machine provision
命令都試過了,沒有作用棺榔。還有人說重建虛擬機夫晌,想想應該一定是有作用,但是里面的東西都要重建曙博,很麻煩。發(fā)現docker-machine ssh
是正常的怜瞒,那就干脆 ssh 到虛擬機里面去操作父泳。
docker虛擬機里面沒有docker-compose
,那就裝一個盼砍,倒也不麻煩。按照官方的指導逝她,兩個命令搞定
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
接下來的麻煩
后來才意識到浇坐,docker虛擬機重啟以后,就要重新安裝docker-compose
黔宛,它這個虛擬機是不保留狀態(tài)的呀近刘!這一長串的命令,就只好記到我的 commands.txt 里面去臀晃,每次用的時候去找出來復制粘貼(我把常用的命令什么的都記在這個文件中觉渴,加上 Sublime ,基本還是能很快找到想要用的命令)徽惋。
另外一個事案淋,許多容器沒設置成自動啟動,虛擬機重啟以后险绘,需要一一去啟動踢京,也是一樣誉碴,記下來,用的時候找出來復制粘貼瓣距。
docker-compose -f /Users/mike/Projects/docker/mysql/docker-compose.yml restart
docker-compose -f /Users/mike/Projects/docker/redis/docker-compose.yml restart
docker-compose -f /Users/mike/Projects/docker/www1/docker-compose.yml restart
docker-compose -f /Users/mike/Projects/docker/www2/docker-compose.yml restart
docker-compose -f /Users/mike/Projects/docker/myadmin/docker-compose.yml restart
docker-compose -f /Users/mike/Projects/docker/nginx/docker-compose.yml restart
解決復制粘貼命令的煩惱
最近開始用 flashops 黔帕,立馬想到,這些命令都弄到 flashops 里面去蹈丸。有個小問題成黄,就是得把 docker 虛擬機的 ssh 證書找出來,直接上結果逻杖,在這里:
/Users/mike/.docker/machine/machines/default/id_rsa
先上一下 flashops 配置
servers:
- title: Docker Machine Default
ssh:
host: 192.168.99.100
user: docker
keyfile: /Users/mike/.docker/machine/machines/default/id_rsa
operations:
- title: Install Docker-Compose
commands:
- 'sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose'
- 'sudo chmod +x /usr/local/bin/docker-compose'
- title: Start all container
commands:
- 'docker-compose -f /Users/mike/Projects/docker/mysql/docker-compose.yml restart'
- 'docker-compose -f /Users/mike/Projects/docker/redis/docker-compose.yml restart'
- 'docker-compose -f /Users/mike/Projects/docker/www1/docker-compose.yml restart'
- 'docker-compose -f /Users/mike/Projects/docker/www2/docker-compose.yml restart'
- 'docker-compose -f /Users/mike/Projects/docker/myadmin/docker-compose.yml restart'
- 'docker-compose -f /Users/mike/Projects/docker/nginx/docker-compose.yml restart'
- 'docker ps'
再看一下整個執(zhí)行過程
$ flashops
Hi, flashops
No config file provided, using FLASHOPS_FILE. -h to see the help.
File: /Users/mike/ds.yaml
[f] Files
[r] Projects
[s] Servers
[t] Tasks
[c] Statements
[D] Donation
Please input your choice ("exit" for quit): s1
Connecting to Docker Machine Default ...... Work path: /home/docker
[0] Check connection
[1] Install Docker-Compose
[2] Start all container
[3] Docker PS
(Docker Machine Default)Choose a Operation: 1
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 617 0 617 0 0 1080 0 --:--:-- --:--:-- --:--:-- 1078
100 11.2M 100 11.2M 0 0 1070k 0 0:00:10 0:00:10 --:--:-- 1329k
sudo chmod +x /usr/local/bin/docker-compose
(Docker Machine Default)Choose a Operation: 2
docker-compose -f /Users/mike/Projects/docker/mysql/docker-compose.yml restart
Restarting mysql_mysql_1 ... done
docker-compose -f /Users/mike/Projects/docker/redis/docker-compose.yml restart
Restarting redis_redis_1 ... done
docker-compose -f /Users/mike/Projects/docker/www1/docker-compose.yml restart
Restarting www1_www_1 ... done
docker-compose -f /Users/mike/Projects/docker/www2/docker-compose.yml restart
Restarting www2_www_1 ... done
docker-compose -f /Users/mike/Projects/docker/myadmin/docker-compose.yml restart
Restarting myadmin_myadmin_1 ... done
docker-compose -f /Users/mike/Projects/docker/nginx/docker-compose.yml restart
Restarting nginx_nginx_1 ... done
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
576e3033a294 nginx_nginx "nginx -g 'daemon of…" 2 months ago Up Less than a second 0.0.0.0:80->80/tcp nginx_nginx_1
78f5013aa9d0 myadmin_myadmin "catalina.sh jpda run" 2 months ago Up 5 seconds 0.0.0.0:10080->8080/tcp myadmin_myadmin_1
f128d0e01bfd www1_www "sh -c 'node www.js …" 2 months ago Up 8 seconds 0.0.0.0:6081->3000/tcp www1_www_1
6e33edbfc3d2 www2_www "sh -c 'node www.js …" 2 months ago Up 6 seconds 0.0.0.0:6082->3000/tcp www2_www_1
298ae06c915c mysql_mysql "/entrypoint.sh mysq…" 2 months ago Up 9 seconds 0.0.0.0:3306->3306/tcp mysql_mysql_1
6950e6bcf2e9 redis "/entrypoint.sh redi…" 2 months ago Up 8 minutes 0.0.0.0:6379->6379/tcp redis_redis_1
(Docker Machine Default)Choose a Operation:
整個操作奋岁,只輸入了
s1
1
2
比起到 commands.txt 里去找命令、復制粘貼舒服多了弧腥。
最后
再說一下 docker 虛擬機證書的問題厦取,最后我還是重建了 docker 虛擬機(重建里面的容器什么的倒是容易的,就是導入數據庫太慢管搪,電腦不給力啊虾攻,足足等了一個多小時)。