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
- 列出所有可更新的软件清单命令:
yum check-update
- 更新所有软件命令:
yum update
- 仅安装指定的软件命令:
yum install <package_name>
- 仅更新指定的软件命令:
yum update <package_name>
- 列出所有可安裝的软件清单命令:
yum list
- 删除软件包命令:
yum remove <package_name>
- 查找软件包命令:
yum search <keyword>
- 清除缓存目录下的软件包:
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 update
、apt install iputils-ping
、apt 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 update
,apt-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
- 启动容器:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于