Ubuntu使用docker安装redmine

Ubuntu使用docker安装redmine

1 安装docker

apt-get install docker.io
  • 1

2 下载镜像

在docker hub中已经有redmine和mysql的官方镜像了。这里我选用mysql的5.7版本和redmine的3.2版本。

docker pull mysql:5.7
docker pull redmine:3.2
  • 1
  • 2

安装成功之后,执行docker images,可以看到两个镜像的描述,类似如下:

#docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
mysql               5.7                 b73014bcbc5b        7 hours ago         400.2 MB
redmine             3.2                 6e3204627702        11 hours ago        636.1 MB
  • 1
  • 2
  • 3
  • 4

3 docker启动mysql

docker run -d -p 3306:3306 --name server-mysql -e MYSQL_ROOT_PASSWORD="pass"  -e MYSQL_DATABASE=redmine mysql:5.7
  • 1

这里为物理机和虚拟机的3306端口做了端口映射,以让外部用户可以通过3306端口访问mysql实例。

4 docker启动redmine

docker run -d -p 8080:3000 --name=server-redmine -e MYSQL_ROOT_PASSWORD="pass" --link server-mysql:mysql redmine:3.2
  • 1

这里为物理机和虚拟机的8080与3000端口做了端口映射,使用外部用户可以通过8080端口访问redmine.

如果一切正常,那么使用docker ps -a可以看到下面的输出:

CONTAINER ID        IMAGE               COMMAND                CREATED              STATUS              PORTS                    NAMES
36c529a03cab        redmine:3.2         "/docker-entrypoint.   7 seconds ago        Up 7 seconds        0.0.0.0:8080->3000/tcp   server-redmine
c28063bc0494        mysql:5.7           "docker-entrypoint.s   About a minute ago   Up About a minute   0.0.0.0:3306->3306/tcp   server-mysql
  • 1
  • 2
  • 3

5 后续步骤

目前为止,打开浏览器访问物理机的8080端口就可以打开redmine的页面了。

5.1 使用数据卷共享数据

在redmine的使用过程中,通常会有用户上传文件,这些文件存放在/usr/src/redmine/files路径下,使用docker安装后,这些文件便在虚拟机中,如果日常需要备份等维护工作,能在物理机上进行操作是比较方便的。因此借助docker的数据卷功能以实现这种需求。

docker run -d -p 8080:3000 --name=server-redmine -e MYSQL_ROOT_PASSWORD="pass" --link server-mysql:mysql -v /redmine-dir:/usr/src/redmine/files redmine:3.2
  • 1

同样的mysql的数据存储目录也可以和物理机共享

docker run -d -p 3306:3306 --name server-mysql -v /mysql-dir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="pass"  -e MYSQL_DATABASE=redmine mysql:5.7
  • 1

5.2 数据库备份

数据库备份的一种方法是dump成sql文件,见下面的命令。

$ docker exec server-mysql sh -c 'exec mysqldump --databases redmine -uroot -p"$MYSQL_ROOT_PASSWORD"' > /your/host/path/bak.sql
  • 1

5.3 和虚拟机交互

如果想和虚拟机交互,可以启动一个虚拟机的shell:

docker exec -it $id /bin/bash
  • 1

如果想将虚拟机的文件复制出来,可以用:

扫描二维码关注公众号,回复: 223450 查看本文章
docker cp server-mysql:/var/lib/mysql/redmine ./ 
  • 1

5.4 删除容器和镜像

在操作过程中,有时候会操作失败,产生一些不需要的文件,可以通过下面的方式删除

docker stop 36c529  #停止指定id的容器
docker rm   36c529  #删除指定id的容器
docker rmi  b73014  #删除指定id的镜像   
  • 1
  • 2
  • 3

6 备注:

docker的安装后,会在主机上添加docker虚拟网卡,将物理机和虚拟机组织在一个内网中。通过内网ip,也可以访问虚拟机上的服务。


问题处理:

启动完mysql之后启动redmine报错:authentication plugin 'caching_sha2_password' 连接异常问题解决


解决方案:进入mysql容器

执行:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root1';

数据库查询user表,发现新版使用的,caching_sha2_password ,可能我自己不支持这种格式的密码。

| plugin                             | authentication_string                                                                                                 |
| caching_sha2_password | $A$005$piM&Krp\j/35!8<;HxBixcPjO34yvUXvNgQIPbdNu.E9xREeQDU9UZ1tAN/ |  


猜你喜欢

转载自blog.csdn.net/a1010256340/article/details/80226614
今日推荐