工具手册

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

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
  • 启动容器:

相关帖子

回帖

欢迎来到这里!

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

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