zoukankan      html  css  js  c++  java
  • Docker安装MongoDB、MySQL、Jenkins、Gitlab、Nginx

    Docker安装MongoDB、MySQL、Jenkins、Gitlab、Nginx

    安装MongoDB

    1. 拉取镜像
    $ sudo docker pull mongo
    
    2. 运行镜像
    $ sudo docker run --name mongo -p 27017:27017 -v /srv/mongodb/db:/data/db -v /srv/mongodb/backup:/data/backup -d mongo --auth
    
    3. 进入mongo容器,
    $ sudo docker exec -it mongo mongo admin
    
    4. 添加用户
    > db.createUser({ 
        user: "admin", 
        pwd: "123456", 
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ], 
        mechanisms : ["SCRAM-SHA-1"] 
    });
    
    5. 修改用户权限
    $ db.auth("admin", "123456")
    $ db.grantRolesToUser("admin", [ { role:"root", db:"admin"} ]) ;
    
    6. 查询用户
    $ db.system.users.find();
    

    安装MySQL

    1. 拉去镜像
    $ sudo docker pull mysql/mysql-server:5.6
    
    2. 启动镜像
    $ sudo docker run --name=mysql  -p 3306:3306 --volume /etc/localtime:/etc/localtime --volume /srv/mysql/datadir:/var/lib/mysql:z -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server:5.6 
    
    3. 配置远程连接
    3.1 进入docker容器
    $ sudo docker exec -it mysql /bin/bash
    
    3.2 进入mysql,密码:123456
    $ mysql -uroot -p
    
    3.3 查询远程连接的用户配置
    > select user,password,host from mysql.user;
    
    3.4 修改权限:%代表允许所有IP访问,your_password修改为自己的密码
    > grant all privileges on *.* to root@"%" identified by "your_password";
    
    3.5 刷新权限
    > flush privileges;
    

    安装Nginx

    1. 拉取镜像
    $ sudo docker pull nginx
    
    2. 运行基础镜像
    $ sudo docker run --name nginx -d nginx 
    
    3. 把配置目录/etc/nginx复制到共享卷目录
    $ sudo mkdir -p /srv/nginx
    $ sudo docker cp nginx:/etc/nginx/ /srv/nginx/conf
    
    4. 删除原有镜像
    $ sudo docker stop nginx
    $ sudo docker rm nginx
    
    5. 重新运行镜像
    $ sudo docker run --name nginx -p 80:80 --volume /srv/nginx/conf:/etc/nginx/:Z --volume /srv/nginx/html:/usr/share/nginx/html:Z --volume /srv/nginx/logs:/var/log/nginx:Z --detach nginx
    
    

    安装Jenkins

    1. 拉取镜像
    $ sudo docker pull jenkins/jenkins:lts
    
    2. 创建volume文件夹
    $ sudo mkdir -p /srv/jenkins
    
    3. 修改volume文件夹权限(不建议添加参数:--privileged=true)
    $ sudo chown -R 1000:1000 /srv/jenkins/
    
    4. 运行Docker,其中的":Z"是为了防止由于Selinux权限导致的问题
    $ sudo docker run --name="jenkins" --publish 8080:8080 --publish 50000:50000 --volume /srv/jenkins:/var/jenkins_home:Z --restart=always --detach docker.io/jenkins/jenkins:lts
    
    5. 修改/srv/jenkins/hudson.model.UpdateCenter.xml的url为:
    # 原来为:http://updates.jenkins-ci.org/update-center.json
    https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    
    6. 进入${ip}:8080,如果一直卡在等待页面,提示:显示正在启动,请稍后...。原因是有一个connectionCheckUrl指向了google的网址,由于环境原因,导致一直无法访问,导致一直等待
    
    7. 解决方法:修改/srv/jenkins/updates/default.json,修改为:
    # 原来为:http://www.google.com/
    "connectionCheckUrl":"https://www.baidu.com/"
    
    8. 如果没有发现updates文件夹,需要先进入jenkins的等待页面,稍等片刻。updates文件夹会出现
    
    9. 至此,Jenkins安装完成,重启jenkins
    $ sudo docker restart jenkins
    
    10. 更新设置开机启动、失败自动重启:
    $ sudo docker update --restart=always ${CONTAINER ID}
    
    11. 进入Jenkins中,发现下载插件时会失败,解决方案如下:
    
        11.1 安装nginx,参考:安装Nginx
    
        11.2 添加host映射:
        $ sudo echo "127.0.0.1 updates.jenkins-ci.org" >> /etc/hosts
    
        11.3 添加nginx配置:
        $ sudo vi /srv/nginx/conf/conf.d/jenkins.conf
    
        11.4 添加以下内容:
        server {
            listen       80;
            server_name  localhost;
    
            rewrite ^/download/plugins/(.*)$ https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/$1? last;
    
    
            location /download/plugins
            {
                proxy_next_upstream http_502 http_504 error timeout invalid_header;
                proxy_set_header Host mirrors.tuna.tsinghua.edu.cn;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                rewrite /download/plugins(.*) /jenkins/plugins/$1 break;
                proxy_pass https://mirrors.tuna.tsinghua.edu.cn;
            }
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /.ht {
            #    deny  all;
            #}
        }
    
    14. 再次下载插件,就不会失败,如有其他报错,可参考类似的方法,把地址映射到https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins
    
    15. 完成Jenkins安装及配置
    

    安装Gitlab

    1. 拉取镜像
    $ sudo docker pull gitlab/gitlab-ee
    
    2. 运行镜像 
    $ sudo docker run --name gitlab --hostname gitlab.demo.com --publish 6443:443 --publish 680:80 --publish 622:22 --volume /srv/gitlab/config:/etc/gitlab:Z --volume /srv/gitlab/logs:/var/log/gitlab:Z --volume /srv/gitlab/data:/var/opt/gitlab:Z --detach --restart always docker.io/gitlab/gitlab-ee:latest
    
    3. 如果进入首页,报错502,可能是内存不足导致,gitlab要求内存大于2G,可通过虚拟内存解决,但会很卡,下面给出设置虚拟内存命令:
    $ sudo dd if=/dev/zero of=/var/swap bs=1024 count=2048000 ; mkswap /var/swap ; swapon /var/swap ; free -h
    
  • 相关阅读:
    窗体间传值
    winform 导出datagridview 到excel
    单击单元格任意地方事件
    CLR via 随书笔记
    值类型和引用类型的区别
    System.Object简介
    装箱与拆箱
    静态类
    关于Linq2Sql有外键表的更新引发的问题。
    滑动切换页面
  • 原文地址:https://www.cnblogs.com/testopsfeng/p/12779092.html
Copyright © 2011-2022 走看看