docker安装记录

4,498次阅读
没有评论

阅读导航[toc]

安装 docker 环境, 基于 ubuntu14.04 LTS

wget -qO- https://get.docker.com/ | sh
#我的用户名为:justchen
sudo usermod -aG docker justchen

安装 docker 环境就这么简单, 接下来安装各种其他应用. 我喜欢把所有 docker 的文件集中放到 /home/dirdocker 中

sudo mkdir /home/dirdocker
sudo chown -R justchen:justchen /home/dirdocker

进入镜像的 bash

docker exec -it 镜像名 bash
docker attach 镜像名

删除镜像说明:

先用 docker pa -a 查看所有的镜像名称
然后 docker rm 镜像名
docker images 但看有哪些镜像
最后 docker rmi 编号

停止所有的容器

docker stop $(docker ps -aq)

删除所有的容器

docker rm $(docker ps -aq)

删除所有的镜像

docker rmi $(docker images -q)

复制文件

docker cp mycontainer:/opt/file.txt /opt/local/
docker cp /opt/local/file.txt mycontainer:/opt/

其他

docker image prune --force --all或者docker image prune -f -a : 删除所有不使用的镜像
docker container prune -f : 删除所有停止的容器

虚拟机 /vps 上安装 docker, 容器无法连网

初步原因还是 mtu 导致的, 默认的 1500 过大, 在启动参数里加上 -mtu=1450 或修改 docker 的配置文件:

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

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

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

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 数据

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

#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

群晖

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 服务

# 请无视此福利
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

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

# 创建需要的文件夹
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

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/

# 下载
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

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
正文完
 0
评论(没有评论)