首页 » docker » 正文

docker安装记录

阅读导航[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

发表评论