存档

‘Docker’ 分类的存档

关于通过Docker部署的gitea的升级

2020年8月18日 2 条评论

最早以前用gitlab,但是太耗资源了。换了gogs,发现总不更新。最后换了gitea。

之前放在托管服务器上的是使用docker部署的gitea 1.6.1版,好长时间没升级了,这次升级了一下,升级到了当前最新的1.12.3版。

按照gitea官方文档,原来的docker容器删掉换新的docker容器就好了,但是前提是容器的/data必须映射到了宿主。也就是说,docker容器删掉,数据不会丢失。

我升级的时候也没有一步到位,先是升级到1.8.3,再升级到1.12.3。避免跨度太大,扯到……docker。

现在升级完看上去都正常。另外,升级前记得备份映射到宿主的/data。

分类: Docker 标签:

Raspbian上安装Docker

2018年7月5日 没有评论

习惯了Arch的仓库以后,Raspbian的仓库老的不能再老了。查了Docker的网站,不能直接装,需要用如下的方法,先搞下来一个脚本来安装,速度有点慢:

curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh

真的是有慢,用的docker官方的仓库。

分类: Docker, Raspberry Pi 标签:

迁移docker方式安装的gitlab-ce

2018年4月10日 没有评论

之前用Docker的方式在阿里云给公司部署了1台Gitlab CE,当时觉得部署起来很简单方便。这次公司要把这个git迁移会IDC,记录过程如下:

1.暂停老服务器的服务

docker stop gitlab

2.迁移数据

进入新服务器的/srv目录,sftp到老服务器,执行get –r /srv/gitlab /srv

-r参数会把整个目录都拿下来

3.新服务器启用安装docker

4.下载gitlab-ce镜像

5.运行容器

按照https://docs.gitlab.com/omnibus/docker/ 中 Run the Image章节运行。

6.迁移预处理

docker exec -it gitlab update-permissions
docker restart gitlab

再重启之后,重新对域名做解析,gitlab服务就正常了。

另,gitlab文档说更换image的版本,可以实现升级,有闲的兄弟可以试试,哈哈

分类: Docker, Git 标签: ,

给i686制作mariadb的docker镜像

2018年2月25日 没有评论

不知道Docker公司是怎么想的,明明其Dockerfile没有指定必须x64,却不提供i686的镜像,只好每次有新版本的时候,重新制作一次。步骤如下:

1.先从Docker公司的github里面获取最新的Dockerfile

git clone https://github.com/docker-library/mariadb.git

2.进入mariadb/10.2目录,然后执行

docker build –t mariadb:10.2.13 .

然后等着就好了。

建议开始之前,先把debian:jessie升级到最新,这样能省很多debian做apt update的时间。

分类: Docker, Linux, MySQL 标签: , ,

给docker中的mongodb开启权限

2017年12月27日 没有评论

先创建docker容器

docker run –name=mongodb -p 27017:27017 –restart=always -d mongo:3.6.0 –auth

在启动容器的bash

docker exec -it mongodb mongo admin

然后在提示符后执行

db.createUser({ user: ‘admin’, pwd: ‘admin’, roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

说明:

  1. 使用的是docker官方的镜像
  2. 创建容器的时候,在最后要加—auth
  3. 执行创建管理用户的以后,登录会需要选择用户的管理库为admin
  4. 之后创建其他库的访问账号,也要在admin内创建账号,再分配其他库的权限。
分类: Docker 标签: ,

CentOS安装Docker-CE

2017年12月5日 没有评论

原本CentOS7里面的Docker是1.12版本的,没觉得很老,但是在自动化构建asp.net core的时候,不支持Dockerfile中的FROM AS语法,只好查一下CentOS7下怎么安装新的Docker-CE,如下:

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install docker-ce

systemctl start docker

目前安装的是17.09.0-ce版本

分类: Docker, Linux 标签: ,

当时用Docker运行GitLab时的非80端口HTTP服务

2017年11月28日 没有评论

我不知道多少人会像我一样在家里使用Docker来跑GitLab,如果真有,那么一定会与到和我一样的问题。我遇到的问题比较简单:宽带运营商不开放80端口,GitLab的Docker镜像默认只支持80端口。外网端口直接端口映射可以用,但是在gitlab的网站里面看到git的clone路径的端口是有问题的,或者地址也是内网的。

解决这个问题需要预先确定准备使用什么域名和端口。首先需要一个动态域名,老tp-link路由器可以使用花生壳,新的tp-link路由器可以用tp-link提供的动态域名,比如现在有一个叫 xx456.tpddns.cn的域名。然后需要确定使用什么端口,比如我映射在2080上。那么我们可以用如下的命令创建一个Docker容器:

docker run \
    -e GITLAB_OMNIBUS_CONFIG="external_url 'http://xx456.tpddns.cn:2080’;” \
    –p 22:22 –p 2080:2080 \
    --name gitlab \
    --restart always \
    -v /srv/docker/gitlab/config:/etc/gitlab \
    -v /srv/docker/gitlab/logs:/var/log/gitlab \
    -v /srv/docker/gitlab/data:/var/opt/gitlab \
    -d gitlab/gitlab-ce:latest

其中

  • 如果你不准备使用ssh访问gitlab里面的git的话,那个22端口的映射也可以去掉。
  • 环境变量GITLAB_MNIBUS_CONFIG里面的external_url就是gitlab提示的地址,gitlab会自动判断是使用http还是使用https,自动判断是使用默认端口,还是其中配置的接口。

现在LAN用ip访问一下,然后再在路由器上做外网2080端口到docker所在服务器192.168.1.2的2080端口的映射。这样无论以后在外网还是内网,都可以使用http://xx456.tpddns.cn:2080来访问这个docker容器中的gitlab了。

注意:不知道什么原因,这种方式做的gitlab容器,会比默认情况下创建的gitlab启动的要慢,也就是docker容器重启以后,由starting到health状态花费的时间要多,初步估计会多30%到50%,但是运行起来之后没有区别。

分类: Docker, Git 标签: ,

制作Archlinux32的docker镜像(image)

2017年11月23日 没有评论

docker hub里面的archlinux大部分是archlinux支持i686时期的镜像,目前archlinux不支持i686以后,这些镜像估计就不再支持i686了。我看了一些x86_64的镜像制作脚本,相当多的一部分都是直接用的其rootfs的tar来制作的,只有少数几种是直接从pacman获取包制作rootfs,挑了两种大牌的,如下:

1.在Moby的github的捐献里,有一个archlinux的制作完整base包的脚本,我把获取包的mirror服务器改成了Archlinux32在日本的服务器以后,在i686的环境里面制作成功并运行了一个Archlinux32。我整理的脚本在https://github.com/bh1rio/archlinux32-docker

2.另外一种方式是使用https://github.com/archlinux/archlinux-docker 的Makefile来直接用make的方式制作。这个不需要改Makefile,他是使用本机配置的mirror来获取包。惊喜是这个makefile可以制作rootfs。

对比两种方式,第二种方式的生成的包稍小,我怀疑有某些不必要的文件没有清理,不过还没有具体比较两个差异。

另,别问我为啥抱着i686玩docker:我给我的那个4盘位的小机器配好了Raid5,没理由扔到一边不管嘛

分类: Docker, Linux 标签: , ,

在Docker里面运行MS SQLServer 2017的Linux版本

2017年11月16日 没有评论

今天看见Docker的Hub里面的microsoft/mssql-server-linux已经升级到了2017-CU1,就顺手装了一个。可以用如下命令:

docker run –name mssql -e ‘ACCEPT_EULA=Y’ -e ‘SA_PASSWORD=‘ -e ‘MSSQL_PID=Standard’ -p 1433:1433 -d microsoft/mssql-server-linux:2017-CU1</yourstrong!passw0rd>

其中有意思的是MSSQL_PID这个参数,PID是Product ID (PID)或者版本的意思,可以送的参数包括:

Developer :开发版,默认值
Express :这个不用说了
Standard :标准版
Enterprise :企业版
EnterpriseCore :这个你们自己试试吧

01448D53赶快搞起来吧

开启Docker的远程管理功能

2017年11月9日 没有评论

摘录自https://docs.docker.com/engine/admin/#configure-the-docker-daemon

首先修改/etc/docker/daemon.json文件,添加:

"hosts": ["unix:///var/run/docker.sock","tcp://192.168.59.3:2376"]

如果这个文件不存在,就创建一个。如果存在,注意这个文件是json格式,添加新的行,注意上一行末尾添加逗号。

然后再用systemctl show –property=FragmentPath docker找到服务的定义文件,然后去掉ExecStart那一行的-H参数,修改为:

ExecStart=/usr/bin/dockerd

这样重启整个系统就好了。不愿意重启的话,先systemctl daemon-reload,再systemctl restart docker

分类: Docker 标签: