最近因为搭建开源看板网站的需要,玩了下docker
一开始在redhat上安装docker
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo yum clean all yum makecache sudo yum update
差几个包更新失败了几次,网速又慢,急的我头疼,最后几个安装包换了centos7自带的base源才搞定。不清楚为啥网易的不行?
之后follow , https://docs.docker.com/engine/installation/linux/centos/
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled= gpgcheck= gpgkey=https://yum.dockerproject.org/gpg EOF
sudo yum install docker-engine sudo service docker start sudo docker run hello-world
最后建立docker组,让某普通用户用来执行docker run
sudo usermod -aG docker webmasterXX
ok,开始安装网站
docker pull mquandalle/wekan docker run -d --name wekan-mongodb mongo docker run -d --name=wekans --link=wekan-mongodb:db -e MONGO_URL=mongodb://db -e ROOT_URL=http://localhost -p 9090:80 mquandalle/wekan
这样,运行了2个容器,一个db 一个网站
折腾的时候用了用docker几个命令
docker ps docker rm 44ecaa1c54edd14d4355e9f989c4f34e542d8780089ed91da3d6c53d92c8da1b docker exec -it 49b9347638b7 /bin/sh docker kill 5c915fb6d5c3
因为上述mongo运行在容器中,容器杀掉删除,数据无法保存,因此重新部署了 mongo的容器,之前那个--link不能用了,还不知道为啥
docker run -d -v /home/webmasterXX/mongo:/data/db --name wekan-mongodb mongo
docker run -d --name=wekans --link=wekan-mongodb:db -e MONGO_URL=mongodb://db -e ROOT_URL=http://localhost -p 9090:80 mquandalle/wekan
并试了试mongo导出数据的命令
mongo show dbs mongo admin --eval "rs.slaveOk();db.getCollectionNames();" mongoexport -d admin -c users -o abc.json
网站是ok了,觉得docker真的狠狠狠方便……
补充两个docker命令方便导出文件
docker cp 49b93476387:/usr/share/nginx/html/index.html . docker cp data-model-hunan.html 49b93476387:/usr/share/nginx/html/.
另外docker停止后重启用到的命令是
docker ps -a docker start containerId
华丽分割,兴趣大增
于是又试了试搭建一个数据字典网站
docker run -d -p : burke/openmrs-datamodel
这个网站是nginx静态网站,
如果替换nginx里面的html即可生成自己需要的数据字典
于是用docker exec -it进入docker看看nginx里面的html
cd /usr/share/nginx/html
哇塞,不小心看到这个html竟然是用groovy生成的。惭愧,不懂java啊,安装groovy折腾吧(目前还不会自己生成内容)
curl -s get.sdkman.io | bash
装好groovy后运行了一个脚本
groovy my.groovy conf.ini
题外话,groovy有个很坑的地方,会对初始化环境变量进行大量修改,我因此就导致了sftp报错,原来是bashrc找不到JAVA_HOME,然后echo了大量的文本,
最后我重定向init脚本的echo,但groovy还是相当好写的,毕竟是跨平台的脚本。