阅读导航[toc]
安装docker环境,基于ubuntu14.04 LTS
1 2 3 |
wget -qO- https://get.docker.com/ | sh #我的用户名为:justchen sudo usermod -aG docker justchen |
安装docker环境就这么简单,接下来安装各种其他应用.我喜欢把所有docker的文件集中放到 /home/dirdocker中
1 2 |
sudo mkdir /home/dirdocker sudo chown -R justchen:justchen /home/dirdocker |
进入镜像的bash
1 2 3 |
docker exec -it 镜像名 bash docker attach 镜像名 |
删除镜像说明:
先用 docker pa -a
查看所有的镜像名称
然后 docker rm 镜像名
再 docker images
但看有哪些镜像
最后 docker rmi 编号
虚拟机/vps上安装docker,容器无法连网
初步原因还是mtu导致的,默认的1500过大,在启动参数里加上 -mtu=1450 或修改docker的配置文件:
1 2 3 4 5 6 7 |
cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service vim /etc/systemd/system/docker.service #unbuntu的修改方法 ExecStart=/usr/bin/docker daemon -H fd:// –mtu=1450 #centos7的修改方法 ExecStart=/usr/bin/docker daemon –mtu=1450 |
安装gogs
1 2 3 4 5 6 |
mkdir /home/dirdocker/gogs mkdir /home/dirdocker/mysqlgogs #安装mysql5.7 docker run -d --name gogs-mysql -v /home/dirdocker/mysqlgogs:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ROOT密码 -e MYSQL_USER=gogs -e MYSQL_PASSWORD=密码 -e MYSQL_DATABASE=gogs_sql mysql:5.7 --character-set-server=utf8 --collation-server=utf8_unicode_ci docker run -d --privileged --name=gogs --link gogs-mysql:mysql -p 10022:22 -p 3000:3000 -v /home/dirdocker/gogs:/data gogs/gogs 解释:-v 是将本地目录挂载到容器里 --link 可以将两个容器链接在一起(同网段) |
安装pptpd
1 2 3 4 5 6 7 8 9 10 |
mkdir /home/dirdocker/pptpd 编辑 nano /home/dirdocker/pptpd/chap-secrets # Secrets for authentication using PAP # client server secret acceptable local IP addresses arm * 123456 * 然后 #docker run -d --name pptpd --privileged -p 1723:1723 -v /home/dirdocker/pptpd/chap-secrets:/etc/ppp/chap-secrets mobtitude/vpn-pptp docker run -d --restart always --name pptpd --privileged -p 1723:1723 -v /home/dirdocker/pptpd/chap-secrets:/etc/ppp/chap-secrets mobtitude/vpn-pptp |
安装redmine
1 2 3 4 5 6 7 8 9 10 11 12 |
mkdir /home/dirdocker/redmineMysql mkdir /home/dirdocker/redmine #按照官方教程没有设置MYSQL的编码格式.中文时会出问题 docker run -d --name redmine-mysql -v /home/dirdocker/redmineMysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=redmine mysql:5.7 --character-set-server=utf8 --collation-server=utf8_unicode_ci #docker run -d --name redmine --link redmine-mysql:mysql -p 3000:3000 -v /home/dirdocker/redmine:/usr/src/redmine/files redmine:3.2.1 docker run --name=redmine -it --rm --link redmine-mysql:mysql \ --volume=/home/dirdocker/redmine:/home/redmine/data \ --env="DB_PASS=secret" --env="DB_NAME=redmine"\ --env="USERMAP_UID=998" \ --volumes-from gitlab \ -p 3000:80 \ sameersbn/redmine:latest |
--volumes-from gitlab
使用与gitlab同一个volumes,这样才能访问到git内容,--env="USERMAP_UID=998"
表示以用户id 998来运行redmine,这个998是gitlab里的git用户,不然redmine会没权限获取到git数据
1 2 3 4 5 6 7 |
docker run -d --name=redmine -it --rm --link redmine-mysql:mysql \ --volume=/volume1/docker/redmine/redmine:/home/redmine/data \ --env="DB_PASS=secret" --env="DB_NAME=redmine"\ --env="USERMAP_UID=998" \ -p 3000:3000 \ redmine:3.4 |
wiznote
1 2 3 4 |
#for qnap docker run --name wiz -it -d -v /share/appData/dirdocker/wiznote:/wiz/storage -v /etc/localtime:/etc/localtime -p 1081:80 -e SEARCH=true wiznote/wizserver docker run --name wiz --restart=always -it -d -v /home/justchen/docker/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 10082:80 -p 9269:9269/udp wiznote/wizserver |
群晖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
docker run -d --name redmine-mysql \ --restart=always \ -v /volume2/docker/redmine/redmineMysql:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=secret \ -e MYSQL_DATABASE=redmine \ mysql:5.7 \ --character-set-server=utf8 --collation-server=utf8_unicode_ci docker run -d --name=redmine -it --link redmine-mysql:mysql \ --volume=/volume2/docker/redmine/redmine/files:/usr/src/redmine/files \ --env="DB_PASS=secret" --env="DB_NAME=redmine"\ --env="USERMAP_UID=998" \ -p 3000:3000 \ redmine:3.4 |
安装shadowsocks服务
1 2 |
#请无视此福利 docker run -d --name ssserver -p 8066:8066 oddrationale/docker-shadowsocks -s 0.0.0.0 -p 8066 -k 8926785 -m aes-256-cfb |
安装gitlab
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
mkdir -p /home/dirdocker/gitlab/config mkdir -p /home/dirdocker/gitlab/logs mkdir -p /home/dirdocker/gitlab/data docker run --detach \ --hostname git.justchen.com \ --publish 443:443 --publish 1081:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /home/dirdocker/gitlab/config:/etc/gitlab \ --volume /home/dirdocker/gitlab/logs:/var/log/gitlab \ --volume /home/dirdocker/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest #升级处理: docker stop gitlab docker rm gitlab docker pull gitlab/gitlab-ce:latest #再执行最开始那条 #备份:将 <your container name> 更换为 gitlab docker exec -t <your container name> gitlab-rake gitlab:backup:create # 12.2 以后版本方式 docker exec -t <container name> gitlab-backup create #恢复需要进入docker容器,运行 gitlab-rake gitlab:backup:restore BACKUP=1393513186_xxx.tar |
onlyoffice
onlyoffice 需要ONLYOFFICE Document Server
Mail Server
以及Community Server
这三个项目配合使用,其中mail部份可以不需要, Document是用来在线处理文档用的,community则是用户以及项目管理中心.
环境安装
参考 https://github.com/ONLYOFFICE/Docker-CommunityServer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#创建需要的文件夹 mkdir -p /home/dirdocker/onlyoffice/DocumentServer/data mkdir -p /home/dirdocker/onlyoffice/DocumentServer/logs mkdir -p /home/dirdocker/onlyoffice/CommunityServer/logs mkdir -p /home/dirdocker/onlyoffice/CommunityServer/data mkdir -p /home/dirdocker/onlyoffice/CommunityServer/mysql #创建网桥,因为用link的方式会与always启动顺序冲突 docker network create --driver bridge onlyoffice docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-document-server \ -v /home/dirdocker/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \ -v /home/dirdocker/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \ onlyoffice/documentserver docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-community-server \ -p 81:80 \ -v /home/dirdocker/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \ -v /home/dirdocker/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \ -v /home/dirdocker/onlyoffice/CommunityServer/mysql:/var/lib/mysql \ -v /home/dirdocker/onlyoffice/DocumentServer/data:/var/www/onlyoffice/DocumentServerData \ -e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \ onlyoffice/communityserver |
world 中文乱码处理
参考https://github.com/ONLYOFFICE/DocumentServer/issues/7
1 2 3 4 5 6 7 8 9 |
apt-get install fonts-arphic-ukai mkdir -p /usr/share/fonts/consolas cd /usr/share/fonts/consolas/ wget https://raw.githubusercontent.com/justchen/yahei.consolas-font/master/YaHei.Consolas.1.12.ttf chmod 644 *.ttf cd /usr/share/fonts tar cv * | docker exec -i onlyoffice-document-server tar x -C /usr/share/fonts/ docker exec onlyoffice-document-server documentserver-generate-allfonts.sh |
安装 wordpress
前段间由于服务器被挂马,始终不知道是什么原因引起的,所以干脆把所有应用全部移到docker来处理,方便备份复恢复
待研究!!
群晖 docker 更新方法
引用自: https://blog.littlelanmoe.com/uncategorized/386
群晖上的Docker是个很好用的功能,本人也使用Docker安装了不少程序,总体来说使用还是很方便的。
但是最近冒出了一个问题:Docker里面的程序如果有新版本了要如何更新呢?
搜罗了一圈百度,结果没找到什么有价值的东西,果然百度一下,什么都不知道。最后还是用Google找到了办法,总结了两个办法:
第一个,笨办法:把下载的镜像删掉,容器也删掉,重新下载,保证是最新的;
第二个,保留容器的设置:首先在群晖的web页面上把docker里需要更新的程序停止,然后用命令docker pull
Cloudreve
参考 https://daqing.host/3630/cloudreve-docker-aria2/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# 下载 docker pull xavierniu/cloudreve # 创建 mkdir -p ~/cloudreve/uploads \ && mkdir -p ~/cloudreve/avatar \ && touch ~/cloudreve/conf.ini \ && touch ~/cloudreve/cloudreve.db # 启动 docker run -d \ --name cloudreve \ -e PUID=$UID \ -e PGID=$GID \ -e TZ="Asia/Shanghai" \ -p 5212:5212 \ --restart=unless-stopped \ -v /cloudreve/uploads:/cloudreve/uploads \ -v ~/cloudreve/conf.ini:/cloudreve/conf.ini \ -v ~/cloudreve/cloudreve.db:/cloudreve/cloudreve.db \ -v ~/cloudreve/avatar:/cloudreve/avatar \ xavierniu/cloudreve |
为了得到初始信息,需要执行docker logs -f cloudreve获取初始密码
transmission
1 2 3 4 5 6 7 8 9 10 11 |
docker run -d --name="transmission" \ -e USERNAME=justchen \ -e PASSWORD=************ \ -p 9091:9091 \ -p 51413:51413 \ -p 51413:51413/udp \ -v /mnt/vdb/docker/pt/downloads:/root/Downloads \ -v /mnt/vdb/docker/pt/config:/root/.config/transmission-daemon \ --restart=always \ helloz/transmission |