TreeviewCopyright © levywang123@gmail.com 2020 all right reserved, powered by aleen42

GOGS和Mysql安装到docker -- Git

拉取镜像

docker pull gogs/gogs

启动GOGS

Docker本身使用了linux内核,所以一些linux的特性他也是具备的,比如挂载磁盘。

Docker在常见一个容器服务时使用的是docker run命令,它的options就提供了一个 -v | -volume 的参数,就是用来挂在磁盘。

这个有什么用呢,简单讲,你用Gogs镜像创建了一个容器,Gogs的数据都是存放在默认的data目录下,当我们那天升级或误删容器之后,我们的数据就无法找回了。

-v | -volume 这个命令就可以将容器中的 data 目录挂载到linux主机上的其他任意目录,这样子就可以保证升级、误删、数据迁移我的数据都不会变。

 启动     后台运行     命名        端口映射                    数据挂载
docker run -d --name=gogs -p 10022:22 -p 3000:3000 -v /data/gogs:/data gogs/gogs

-p:是映射端口,10022映射的是容器中的22端口 3000映射的是容器中的3000端口,我们配置gogs的时候会用到他们

即服务器端口3000, ssh端口10022

若想在服务器重启后,自动启动该docker容器则使用下面这句话,在镜像名字前加上 --restart unless-stopped

 启动     后台运行     命名        端口映射                    数据挂载          服务重启
docker run -d --name=gogs -p 10022:22 -p 3000:3000 -v /data/gogs:/data --restart unless-stopped  gogs/gogs

部署 MySQL

  1. 下载 MySQL5.7 镜像

    数据库一定要使用5.7及以上版本,不然后面会有主键长度问题哦~

    docker pull mysql:5.7

  2. 启动 MySQL:

    docker run -d -p 3306:3306 --name=gogs-mysql -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/logs -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --restart unless-stopped mysql:5.7
    

    参数说明

    • -d : 后台运行容器,并返回容器 ID
    • -p 3306:3306 : 将容器的 3306 端口映射到主机的 3306 端口
    • –name mysql : 命名为 mysql
    • -v /data/mysql/conf:/etc/mysql/conf.d : 将本机 /data/mysql/conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf
    • -v /data/mysql/logs:/logs : 将本机 /data/mysql/logs 目录挂载到容器的 /logs
    • -v /data/mysql/data:/var/lib/mysql : 将本机 /data/mysql/data 目录挂载到容器的 /var/lib/mysql
    • -e MYSQL_ROOT_PASSWORD=123456 : 初始化 root 用户,密码设置为 123456
    • mysql:5.7 :基于镜像的版本为 MySQL:5.7
  3. 进入 MySQL 容器:mysql

    docker exec -it gogs-mysql bash

    1. 登录 MySQL

      mysql -u root -p

      输入密码:123456

      使用mysql数据库

      use mysql;

    2. 创建 gogs 数据库

      create database gogs character set utf8 collate utf8_bin;

    3. 用下面的创建用户方法 添加远程登录用户gogs(给后面gogs服务使用)

         #授权gogs用户拥有gogs数据库的所有权限(某个数据库的所有权限) 只赋予这一个数据的权限
         grant all privileges on gogs.* to gogs@localhost identified by '123gogos'; # 本地访问权限
         grant all privileges on gogs.* to gogs@'%' identified by '123gogos';  # 远程访问权限
         flush privileges;  # 刷新权限,使生效
      
      1. 退出 MySQL

        exit

  4. 退出 MySQL 容器:mysql

    exit

GOGS 第一次启动配置

gogs1

gogs2

相关问题解决

Gogs:配置说明 https://docs.gitea.io/zh-cn/config-cheat-sheet/

修改了配置 需要执行 docker restart gogs

操作参考:https://blog.csdn.net/wang_shuyu/article/details/83217190

1.nginx代理,使用域名访问,出现413错误或者上传数据过大的提示解决办法

  • 在nginx配置中加上 client_max_body_size 10240m; 然后 nginx -s reload 解决

2.iptables 错误问题解决

  • 在docker运行时,有时可正常运行,若加上防火墙或docker内部端口不能访问时,添加以下代码可修复问题

1.vim /etc/sysctl.d/99-sysctl.conf 配置文件,添加

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

2.重新刷新系统配置

sysctl --system

3.重启docker 守护进程

systemctl daemon-relo

systemctl restart dock

即可修复iptables 异常异常问题

Copyright © levywang123@gmail.com 2020 all right reserved,powered by Gitbook该文章修订时间: 2020-08-31 09:37:18

results matching ""

    No results matching ""