工具手册

本贴最后更新于 195 天前,其中的信息可能已经时移世异

MySQL

获取时间

-- 获取当前日期时间 
select NOW(); # 2021-04-02 09:25:29 
-- 获取当前日期 
SELECT CURDATE(); # 2021-04-02 
-- 获取当前时间 
SELECT CURTIME();  # 09:26:10 
# 对于时间2021-04-02 09:25:29,分别获取其年、月、日、时、分、秒 
SELECT EXTRACT(YEAR FROM NOW()); # 2021
SELECT EXTRACT(MONTH FROM NOW()); # 4 
SELECT EXTRACT(DAY FROM NOW()); # 2 
SELECT EXTRACT(HOUR FROM NOW()); # 9 
SELECT EXTRACT(MINUTE FROM NOW()); # 25 
SELECT EXTRACT(SECOND FROM NOW()); # 29

日期增加、减少

# 时间减少1小时(前一小时)
select date_sub(now(), INTERVAL 1 hour);

# 日期增加1天
select date_add(now(), INTERVAL 1 day);

# 其他间隔
INTERVAL 1 YEAR
INTERVAL 1 MONTH
INTERVAL 1 DAY
INTERVAL 1 HOUR
INTERVAL 1 MINUTE
INTERVAL 1 SECOND

日期格式化、字符串转换

# 格式化参考:
select DATE_FORMAT(now(),'%Y-%m-%d %H:%i:%s');
select DATE_FORMAT(now(),'%Y-%m-%d %H:00:00');

#字符串转日期
sele('2021-04-02 10:37:14', '%Y-%m-%d %H:%i:%s'); # 2021-04-02 10:37:14

字符串操作

# 字符串前补0 假如str 的长度大于len, 则返回值被缩短至 len 字符。
select LPAD(str, len, 0)

# 字符串后补0 假如str 的长度大于len, 则返回值被缩短至 len 字符。
select RPAD(str, len, 0)

# 从左开始截取字符串 left(被截取字段,截取长度)
# substring(被截取字段,从第几位开始截取) 
# substring(被截取字段,从第几位开始截取,截取长度)
left(str, length)
substring(str, pos) 
substring(str, pos, length) 

新增字段

ALTER TABLE tuser ADD COLUMN age int(11) DEFAULT NULL COMMENT '年龄';

Linux

  1. 列出所有可更新的软件清单命令:yum check-update
  2. 更新所有软件命令:yum update
  3. 仅安装指定的软件命令:yum install <package_name>
  4. 仅更新指定的软件命令:yum update <package_name>
  5. 列出所有可安裝的软件清单命令:yum list
  6. 删除软件包命令:yum remove <package_name>
  7. 查找软件包命令:yum search <keyword>
  8. 清除缓存目录下的软件包:yum clean package

Docker

Image 镜像

  • 镜像仓库
    • 查询仓库镜像:docker search 镜像名称
    • 拉取仓库镜像:
      • 不指定版本则拉取 lastet 版本:docker pull [image]
      • 指定版本:docker pull [image:version]
  • 本地镜像
    • 查询本地镜像:docker images
    • 删除镜像
      • docker rmi [image] 或者 docker image rm [image]
      • **强制删除镜像,即便有容器引用该镜像,可以使用 **-f 子命令
    • 将本地镜像导出为安装包
      • docker save [image] > [image.tar]
        docker save mongo > /mnt/d/resource/images/mongo.tar
        docker save nginx > /mnt/d/resource/images/nginx.tar
        docker save rabbitmq > /mnt/d/resource/images/rabbitmq.tar
        docker save mysql > /mnt/d/resource/images/mysql.tar
        docker save jenkins/jenkins:2.366 > /mnt/d/resource/images/jenkins.tar
        docker save gitlab/gitlab-ce > /mnt/d/resource/images/gitlab.tar
        docker save elasticsearch:7.1.1 > /mnt/d/resource/images/elasticsearch.tar
        
    • 将安装包导入
      • docker load < [image.tar]
  • 例子
    # 查询elasticsearch
    > docker search elasticsearch
    
    # 拉取指定版本的镜像
    > docker pull elasticsearch:7.1.1
    
    # 查询所有本地镜像
    > docker images
    
    # 删除本地镜像
    > docker image rm -f elasticsearch
    
    # 导出elasticsearch镜像
    > docker save elasticsearch > /mnt/d/resource/images/elasticsearch.tar
    
    # 导入elasticsearch镜像
    > docker load < elasticsearch.tar
    

Container 容器

  • 创建容器并启动,以 mysql01 容器创建并启动为例:docker run -d --name mysql01 -p 3306:3306 -v mysql01:/var/lib/mysql --network mysql_net --ip=172.19.0.4 -e MYSQL_ROOT_PASSWORD=123456 mysql
    • -d :指定后台运行
    • --name mysql01:指定容器的名称为 mysql01
    • -p 3306:3306:指定端口映射为 3306,即主机可以通过该端口访问到容器

      第一个 3306 是主机端口,第二个是容器端口

    • -v mysql01:/var/lib/mysql:挂载数据卷 mysql01,对应容器的 /var/lib/mysql 目录

      mysql01 为数据卷名称,如果不存在会自动创建

    • -e MYSQL_ROOT_PASSWORD=123456:指定 mysql 管理员密码
    • mysql:指定创建容器使用的镜像名称
    • --ip=172.19.0.4:指定 ip 地址
    • --network mysql_net:指定网卡使用 mysql_net
  • 查询容器
    • 查询启动的容器信息:docker ps
    • 查询所有容器信息 :docker ps -a
  • 停止容器:
    • 优雅停止:docker stop [containerId][containerName]

      可以通过 -t 指定关闭时限,默认值为 10 秒,超时自动关闭:

      docker stop -t=60 [containerId][containerName]

    • 强制停止:docker kill [containerId][containerName]
  • 删除容器:docker rm -f [containerId] 或者 docker rm -f [containerName]
  • 重启容器:docker restart [containerId][containerName]
  • 进入容器后台:docker exec -it [containerName] sh
  • **增加 Ping 命令 **apt-get updateapt install iputils-pingapt install iputils-ping

Volume 卷

  • 管理
    • 创建数据卷:docker volume create [volume]
    • 查看数据卷:docker volume ls
    • 删除数据卷
      • 单个删除数据卷:docker volume rm [volume]
      • 删除所有未使用数据卷:docker volume prune
  • 使用
    • 数据卷在创建成功后可以在运行容器时通过指定 -v--mount 参数来使用该数据卷

网络

  • 创建网络:docker network create --subnet=172.19.0.0/16 [name]
    • -d bridge:指定网络类型为桥接
    • --subnet=172.19.0.0/16:指定网卡的网段
  • 查看容器网 IP:docker inspect [containerName]
  • 更新:apt-get update
  • 安装 ping :apt-get install inetutils-ping
  • 安装 ifconfig:apt-get install net-tools
  • 启动服务 Routing and Remote Access

Mysql

创建 mysql 容器

docker run -d --name mysql01  -p 3306:3306 -v mysql01:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql

Redis 集群搭建

  • 创建网卡:docker network create --subnet=172.19.0.0/16 redis_net
  • 准备配置文件,关键配置如下:
    bind 0.0.0.0
    protected-mode no
    port 6379
    cluster-enabled yes
    
  • 创建节点,指定 IP(这里只使用 3 个节点)
     #单节点
    docker run -d --name redis -p 6380:6379 -v redis:/data -v /mnt/d/software/docker-container-config/redis/redis.conf:/etc/redis/redis.conf redis_new redis-server /etc/redis/redis.conf 
    
    # 节点一
    #1.后台运行,起名redis01 端口映射到6377 
    #2.将/data挂载到数据卷redis01 
    #3.将配置文件/etc/redis/redis.conf挂载到/mnt/d/software/docker-container-config/redis/redis01.conf
    #4.使用网卡redis_net,指定IP
    #5.使用镜像redis_new
    #6.使用配置文件/etc/redis/redis.conf 启动redis服务
    docker run -d --name redis-c-n01 -p 6377:6379 -v redis01:/data -v /mnt/d/software/docker-container-config/redis/redis01.conf:/etc/redis/redis.conf --network redis_net --ip=172.19.0.4 redis_new redis-server /etc/redis/redis.conf 
    
    # 节点二
    docker run -d --name redis-c-n02 -p 6378:6379 -v redis02:/data -v /mnt/d/software/docker-container-config/redis/redis02.conf:/etc/redis/redis.conf --network redis_net --ip=172.19.0.5 redis_new redis-server /etc/redis/redis.conf
    
     #节点三
    docker run -d --name redis-c-n03 -p 6379:6379 -v redis03:/data -v /mnt/d/software/docker-container-config/redis/redis03.conf:/etc/redis/redis.conf --network redis_net --ip=172.19.0.6 redis_new redis-server /etc/redis/redis.conf 
    
  • 加入集群
    #登录redis01容器
    docker exec -it redis-c-n01 sh
    #加入其他节点
    redis-cli cluster meet 172.19.0.5 6379
    redis-cli cluster meet 172.19.0.6 6379
    #查看节点
    redis-cli cluster nodes
    #分配插槽
    redis-cli -h 172.19.0.4 -p 6379 cluster addslots $(seq 0 5461)
    redis-cli -h 172.19.0.5 -p 6379 cluster addslots $(seq 5462 10922 )
    redis-cli -h 172.19.0.6 -p 6379  cluster addslots $(seq 10923 16383)
    #查看集群状态,cluster_state:ok 代表成功
    redis-cli cluster info
    
  • 设置密码相关命令,进入 redis-cli 后执行
    # 设置密码
    config set requirepass 123456
    # 查看密码
    config get requirepass
    

ElasticSearch

  • 拉取镜像:docker pull elasticsearch:7.1.1
  • 创建容器
    docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" b0e9f9f047e6
    

jenkins

  • 创建网卡:docker network create --subnet=172.20.0.0/16 cicd
  • 拉取镜像:docker pull jenkins/jenkins:2.366
  • 创建并启动容器
    docker run -d --name jenkins -p 8080:8080 -p 50000:50000 --network cicd --ip=172.20.0.5 -v jenkins-data:/var/jenkins_home jenkins/jenkins:2.366
    
  • 使用浏览器访问界面:http://127.0.0.1:8080
  • 解锁 Jenkins
    • 登录控制台:docker exec -it jenkins sh
    • 查看文件中的密码:cat /var/jenkins_home/secrets/initialAdminPassword
  • 安装插件,可以选择推荐的插件
  • 创建管理员用户:admin/admin
  • 替换插件地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
  • **安装插件: **blue ocean

Gitlab

  • 拉取镜像:docker pull gitlab/gitlab-ce
  • 启动容器:
    docker run -d  -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always --network cicd --ip=172.20.0.6 -v gitlab-conf:/etc/gitlab -v gitlab-log:/var/log/gitlab -v gitlab-data:/var/opt/gitlab gitlab/gitlab-ce
    
  • 查看启动状态:docker ps,出现 health: starting 代表启动中,出现 healthy 代表启动成功
  • 修改配置文件 /etc/gitlab/gitlab.rb,文件里面全是注释内容,增加如下内容
    # 配置http协议所使用的访问地址,不加端口号默认为80
    external_url 'http://172.20.0.6'
    # 配置ssh协议所使用的访问地址和端口
    gitlab_rails['gitlab_ssh_host'] = '172.20.0.6'
    # 此端口是run时22端口映射的222端口
    gitlab_rails['gitlab_shell_ssh_port'] = 222 
    
  • 修改 SSH 监听端口为 222:vim /assets/sshd_config,重启 SSH 服务 service ssh restart

    安装 vim:apt-get updateapt-get install vim

  • 重启:docker restart gitlab
  • 打开浏览器,访问 http://127.0.0.1,找到文件 cat /etc/gitlab/initial_root_password 获取 root 用户的密码然后登录
  • 通过左上角设置更改用户密码以及语言

Gitee

  • 拉取镜像:docker pull gitea/gitea:1.20
  • 启动容器:

相关帖子

回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...