docker安装jenkins、redis、mysql

330 阅读4分钟

1、简单介绍,本文主要是搭建react+egg项目的时在服务器中做的一些配置,方便后面直接进行操作

2、主要就是采用docker的方式,集成jenkins自动化部署、mysql、redis等这些。

3、不得不说使用docker,大大的减少了前端对服务器的环境的操作,方便上手,快速部署服务

1、docker安装

1.1、安装

 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
 sudo yum install -y yum-utils device-mapper-persistent-data   lvm2
 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
 sudo yum install docker-ce docker-ce-cli containerd.io

1.2、启动

 sudo systemctl start docker
 # 开机自动启动docker
 sudo systemctl enable docker

1.3、查看docker版本

docker version
docker info

1.4、卸载

 sudo yum remove docker-ce docker-ce-cli containerd.io

 sudo rm -rf /var/lib/docker
 sudo rm -rf /var/lib/containerd

2、阿里云加速

阿里镜像加速地址

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://自己的阿里加速地址.mirror.aliyuncs.com"]
}
EOF
# 重载所有修改过的配置文件
//daemon-reload: 重新加载某个服务的配置文件
sudo systemctl daemon-reload
sudo systemctl restart docker

3、docker常用基本命令

3.1、镜像

命令含义
docker image ls查看镜像
docker search mysql查找镜像
docker pull docker.io/hello-world拉取镜像
docker rmi hello-world删除镜像

3.2、容器相关

运行容器

# docker 运行ubuntu镜像,并在启动的容器中执行/bin/echo "Hello world"命令
docker run ubuntu /bin/echo "Hello world"
参数含义
-i --interactive交互式
-t --tty分配一个伪终端
-d --detach运行容器到后台
-a --attach list附加到运行的容器
-e --env list设置环境变量
-p --publish list发布容器端口到主机
-P--publish-all
  • 基本命令
命令含义
docker ps
docker ps -a
docker ps -l
查看容器
docker kill [容器id]强行终止容器
docker rm [容器id]删除容器
docker start [容器id]启动容器
docker stop [容器id]停止容器
docker restart [容器id]重启容器
docker container exec -it [容器id] /bin/bash进入一个正在运行中的容器
docker container cp [容器id]/readme.md .拷贝文件

3.3、安装docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 查看版本信息 
docker-compose -version

4、安装node

node下载

image.png

上传文件并解压

  1. 上传压缩包 可以通过一些软件,将下载下来nodejs压缩包( 当前版本:node-v14.16.1-linux-x64.tar.xz )上传至服务器任意位置。可以是/usr/local/src。
  2. 解压压缩包 命令:tar -xvf node-v14.16.1-linux-x64.tar.xz, 将压缩包解压
  3. 将解压出来的文件重命名 命令:mv node-v14.16.1-linux-x64 nodejs
  4. 检查文件目录是否完整:检查node,npm,npx是否存在。若不存在,重新执行上述命令。 image.png

全局引用

  1. 创建软连接
ln -s /usr/local/src/nodejs/bin/npm /usr/local/bin
ln -s /usr/local/src/nodejs/bin/node /usr/local/bin

注意:/usr/local/src/nodejs/bin/npm 此地址为安装的nodejs的文件的绝对地址下的npm和node所在位置,根据每个人的情况不同。 检查命令:node -v,查看命令是否全局生效。显示版本号,代表成功。

image.png

5、安装mysql

  • docker-compose.yml
version: '3'

services:
  mysql:
    container_name: z_mysql
    image: mysql/mysql-server:5.7
    restart: always
    environment:
      MYSQL_USER: root
      MYSQL_PASSWORD: admin
      MYSQL_DATABASE: database
      MYSQL_ROOT_PASSWORD:  admin
    volumes:
  	  - /data/mysql/data:/var/lib/mysql
 	  - /data/mysql/conf:/etc/mysql/conf.d
 	  - /data/mysql/logs:/logs
    ports:
      - 3306:3306

docker-compose up -d

# mysql权限问题解决
docker container exec -it [containerId] sh
mysql -uroot -p
Enter password: xxxx
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
// 修改权限
mysql> FLUSH PRIVILEGES;
// 修改加密规则 密码永不过期的
mysql> ALTER USER 'root'@'localhost' IDENTIFIED by '自己设置的密码' PASSWORD EXPIRE NEVER;
# 更新root密码
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '自己设置的密码';
mysql> FLUSH PRIVILEGES;
mysql> exit

6、安装nginx

  • docker-compose.yml
version: "3"

services:
  nginx:
    container_name: nginx
    image: nginx
    privileged: true
    restart: always
    ports:
      - 80:80
    volumes: 
      - /project/nginx/log:/var/log/nginx
      - /project/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - /project/nginx/conf.d:/etc/nginx/conf.d
      - /project/nginx/html:/usr/share/nginx/html

docker-compose up -d

服务器中创建conf、conf.d、html、log四个文件

conf/nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

conf.d/default.conf

server {
  #监听端口
  listen 80;
  #监听地址
  server_name 服务器ip地址;

  #静态资源
  location / {
    #根目录
    root /usr/share/nginx/html;
    # 设置默认页
    index index.html;
  }

  #接口转发
  location ~ /api/ {
    proxy_pass 转发地址;
  }
}

7、安装redis

  • docker-compose.yml
version: '3'
 
services:
  redis:
    container_name: 'redis'
    image: 'redis'
    restart: always
    volumes:
      - /data/redis/data:/data
      - /data/redis/conf/redis.conf:/etc/redis/redis.conf
      - /data/redis/logs:/logs
    ports:
      - 6379:6379
    command: redis-server --port 6379 --requirepass password  --appendonly yes

docker-compose up -d

连接redis

docker container exec -it redis sh
redis-cli -a password
set a 1
get a // 看看是不是也是1,如果是,则表明成功

8、安装jenkins

  docker run \
  -itd \
  -u root \
  -p 8080:8080 \
  -v /data/jenkins_home:/var/jenkins_home \
  --name jenkins \
  jenkins/jenkins:lts

8.1、查看密码

docker安装jenkins后,查看初始密码
docker logs [容器id](刚刚设置的容器名称),就可以看到初始密码了
docker ps 查看容器运行状态
docker logs 容器ID/容器名称   查看管理员初始密码

或者
docker exec -it [容器id] /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword

8.2、配置Jenkins插件加速

进入jenkins系统管理->插件管理中->高级选项卡->升级站点,使用清华源:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.jsonhttps://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json