Docker:快速部署
docker安装: 安装Docker - 飞书云文档 (feishu.cn)
docker命令解读
docker run -d \
> --name mysql \
> -p 3306:3306 \
> -e TZ-Asia/Shanghai \
> -e MYSQL_ROOT_PASSWORD=123 \
> mysql:5.7
· docker run:创建并运行一个容器,-d是让容器在后台运行
· --name mysql :给容器起一个名字,必须唯一
· -p 3307:3306:设置端口映射,宿主机端口映射到容器的端口
· -e TZ-Asia/Shanghai 和 -e MYSQL_ROOT_PASSWORD=123:环境变量,由镜像的创建者定义,在Docker Hub Container Image Library | App Containerization中查询
· mysql :5.7:指定运行的镜像的名字( 不写版本的话默认最新版本)
docker常见命令:
docker pull:从镜像仓库拉取到本地
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker pull nginx
docker images:查看所有的本地镜像
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 2 years ago 141MB
mysql latest 3218b38490ce 2 years ago 516MB
docker rmi:删除镜像
docker build:自定义镜像
docker save:将镜像打包成一个压缩文件
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker save -o nginx.tar nginx:latest
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# ll
total 2167864
-rw-r--r-- 1 root root 0 Jul 5 20:54 ??ՙ?n?
-rw------- 1 root root 145902080 Sep 30 16:37 nginx.tar
docker load:将压缩文件解压成镜像
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker load -i nginx.tar
2edcec3590a4: Loading layer [==================================================>] 83.86MB/83.86MB
e379e8aedd4d: Loading layer [==================================================>] 62MB/62MB
b8d6e692a25e: Loading layer [==================================================>] 3.072kB/3.072kB
f1db227348d0: Loading layer [==================================================>] 4.096kB/4.096kB
32ce5f6a5106: Loading layer [==================================================>] 3.584kB/3.584kB
d874fd2bc83b: Loading layer [==================================================>] 7.168kB/7.168kB
Loaded image: nginx:latest
docker push:将镜像推送到镜像仓库
docker run:创建并运行容器
docker stop:停止容器的进程
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker stop nginx
nginx
docker start:启动容器的进程
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker start nginx
nginx
docker ps:查看当前容器的运行状态
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f490131959f nginx "/docker-entrypoint.…" 2 minutes ago Up 4 seconds 0.0.0.0:80->80/tcp nginx
docker rm:删除容器
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker rm mysql
mysql
docker logs:查看容器日志(停下使用Ctrl+C)
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker logs -f nginx
docker exec:进入容器内部
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker exec -it nginx bash
root@3f490131959f:/#
命令的别名:
进入编辑模式
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# vi ~/.bashrc
自定义命令别名
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
alias dis='docker images'
使别名生效
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# source ~/.bashrc
数据卷:
数据卷(volume)是一个虚拟目录。是容器内目录于宿主机目录之间的映射桥梁
创建数据卷:/var/lib/docker/volume/html/_data
以利用nginx容器部署静态资源为例
相关命令:
docker run -v:挂载数据卷
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker run -d \
> --name nginx \
> -p 80:80 \
> -v html:/usr/share/nginx/html \ #挂载数据卷
> nginx
docker volume create :创建数据卷
docker volume ls:查看所有数据卷
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker volume ls
docker volume rm:删除指定数据卷
docker volume inspect :查看某个数据卷详情
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker volume inspect html
[{"CreatedAt": "2024-10-01T16:49:55+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/html/_data","Name": "html","Options": null,"Scope": "local"}
]
docker volume prune :清除数据卷
docker inspect:查看容器是否有数据卷挂载
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker inspect mysql
连接Docker容器中的mysql时要注意端口在防火墙和阿里云是否可见
数据挂载:
基于宿主目录实现mysql数据目录,配置文件,初始化脚本的挂载
挂载/root/mysql/data到容器内的/var/lib/mysql
挂载/root/mysql/init到容器内的/docker-entrypoint-initdb.d目录
挂载/root/mysql/conf到容器内的/etc/mysql/conf.d目录
在执行docker run命令时,使用-v 本地目录:容器内目录可以完成本地目录的挂载
[root@iZ2vcduzd0jmjyj0gisbvzZ mysql]# docker run -d \
> --name mysql \
> -p 3307:3306 \
> -e MYSQL_ROOT_PASSWORD=123 \
> -v /root/mysql/data:/var/lib/mysql \
> -v /root/mysql/init:/docker-entrypoint-initdb.d \
> -v /root/mysql/conf:/etc/mysql/conf.d \
> mysql
自定义镜像:
镜像结构:层(Layer)
镜像分层的好处:相同的层不用重复下载,节省了空间
Dockerfile:
Dockerfile就是一个文本文件,其中包含多条指令(instruction),用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile来构建镜像。
常见指令如下:
编写好Dockerfile之后使用以下docker命令创建自己的镜像
docker build -t myImage:1.0 .
· -t:是指定镜像名,格式为repository:tag的格式,不指定tag时,默认为latest
· .: 是指定Dockerfile所在目录,如果就在当前目录,则指定为"."
Docker网络互联:
默认,所有容器都是以bridge方式连接到Docker的一个虚拟网桥上:
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker inspect dd
"IPAddress": "172.17.0.4",
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker inspect mysql
"IPAddress": "172.17.0.3",
加入自定义网络的容器才可以通过容器名相互访问,Docker的网络操作命令如下:
创建自有网络:
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker network create demo
查看所有网络:
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker network ls
将指定容器添加到网络:
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker network connect demo mysql
查看网络:
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker inspect demo
创建容器时将其添加到网络:
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker run -d \
> --name dd \
> -p 8080:8080 \
> --network demo \
> docker-demo
nginx
[root@iZ2vcduzd0jmjyj0gisbvzZ ~]# docker run -d \
> --name dd \
> -p 18080:18080 \
> -p 18081:18081 \
> -v /root/hmsc/nginx/html:/usr/share/nginx/html \
> -v /root/hmsc/nginx/nginx.conf:/ect/nginx/nginx.conf \
> --network demo \
> docker-demo
DockerCompose:
Docker Compose通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器,帮助实现多个相互关联的Docker容器的快速部署
注:使用docker compost之前先安装docker compost
使用命令行部署mysql
#使用命令行创建Docker容器
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
-v ./mysql/data:/var/lib/mysql \
-v ./mysql/conf:/etc/mysql/conf.d \
-v ./mysql/init:/docker-entrypoint-initdb.d \
--network demo \
mysql
使用DockerCompose部署mysql
#使用yml指定DockerConpose部署的Docker容器
version: "3.8"
services:mysql:image: mysqlcontainer_name: mysqlports:- "3306:3306"environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123volumes: - "./mysql/conf:/etc/mysql/conf.d"- "./mysql/data:/var/lib/mysql"- "./mysql/init:/docker-entrypoint-initdb.d"network:- hmall
使用DockerCompose创建一系列Docker容器
compose.yml文件
version: "3.8"services:mysql:image: mysqlcontainer_name: mysqlports:- "3306:3306"environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123volumes:- "./mysql/conf:/etc/mysql/conf.d"- "./mysql/data:/var/lib/mysql"- "./mysql/init:/docker-entrypoint-initdb.d"networks:- hm-nethmall:build: context: .dockerfile: Dockerfilecontainer_name: hmallports:- "8080:8080"networks:- hm-net#后端对应的数据库depends_on:- mysqlnginx:image: nginxcontainer_name: nginxports:- "18080:18080"- "18081:18081"volumes:- "./nginx/nginx.conf:/etc/nginx/nginx.conf"- "./nginx/html:/usr/share/nginx/html"#前端依赖于后端depends_on:- hmallnetworks:- hm-net
#统一定义网络名称
networks:hm-net:name: hmall
使用docker compost命令来指定compost文件来构建docker容器
docker compost up \
-f . \
-p hmsc \
-d
相关文章:

Docker:快速部署
docker安装: 安装Docker - 飞书云文档 (feishu.cn) docker命令解读 docker run -d \ > --name mysql \ > -p 33…...

如何指定this的值
1. 函数调用时指定 call -- 接收一个参数列表 apply -- 接收一个参数数组 2. 创建时指定this的值 bind -- 返回一个函数 传参方式与call相同 箭头函数 -- 其this值取决于上级作用域中的this值 <script>// 如何指定this的值// 1. 调用时指定this// 2. 创建时指定th…...

自动化分析背后,一站式数据分析平台!
自动化分析背后,一站式数据分析平台! 前言一站式数据分析平台 前言 在如今的企业管理中,数据已经不再是简单的存储和备份,而是成为了决策的核心驱动力。尤其是在面对海量数据的情况下,企业急需一个能够高效处理、分析…...

掌握 WPF 开发:基础、数据绑定与自定义控件
WPF(Windows Presentation Foundation)是用于构建现代桌面应用程序的强大框架。它通过 XAML(Extensible Application Markup Language)与丰富的控件体系,提供了灵活的 UI 开发方式。本文将介绍 WPF 的基础知识、XAML 语…...

PostgreSQL:生成-唯一主键id
1. 通过时间戳和随机数拼接生成 select TO_CHAR(NOW(), YYYYMMDDHH24MISS) || LPAD(FLOOR(RANDOM() * 1000000)::TEXT, 6, 0) AS unique_id解析: TO_CHAR(NOW(), ‘YYYYMMDDHH24MISS’):该部分将当前时间 (NOW()) 格式化为 YYYYMMDDHH24MISS 格式&#…...

Swift添加自定义字体
1. 在 Xcode 中添加自定义字体 首先,你需要将自定义字体文件(如 .ttf 或 .otf 文件)添加到项目中。 将字体文件拖放到项目的资源管理器中,确保选中了 "Copy items if needed"。打开 Info.plist 文件,添加一…...

Springboot 整合 Java DL4J 实现企业门禁人脸识别系统
🧑 博主简介:历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,…...

SSTI模板注入+CTF实例
参考文章: 一文了解SSTI和所有常见payload 以flask模板为例-腾讯云开发者社区-腾讯云 (tencent.com) python-flask模块注入(SSTI) - ctrl_TT豆 - 博客园 (cnblogs.com) ssti详解与例题以及绕过payload大全_ssti绕过空格-CSDN博客 1. SSTI(模板注入&…...

iPhone 16 Pro 拆解揭秘:设计改进与维修便利性
苹果最新推出的iPhone 16系列在许多方面都进行了更新和改进,而这次我们要聚焦的是其中的高端型号——iPhone 16 Pro。 这款手机不仅在性能上有所提升,在内部构造上也带来了不少变化,让我们一起来看看这些细节吧。 更容易进入的内部结构 对于…...

Java项目实战II养老||基于Java+Spring Boot+MySQL的社区智慧养老监护管理平台设计与实现(源码+数据库+文档)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着老龄化…...

利用FnOS搭建虚拟云桌面,并搭建前端开发环境(二)
利用FnOS搭建虚拟云桌面,并搭建前端开发环境 二 一、docker镜像二、环境配置三、核心环境配置流程文档 利用FnOS搭建虚拟云桌面,并搭建前端开发环境(一) 上一章安装了飞牛FnOS系统,界面如下,这一张配置前端…...

【Python】Qwen-VL-7B box
VLLM-Qwen2-VL-7B-Instruct import cv2# 读取图像 image_path haibaoA.png # 替换为图像的路径 image cv2.imread(image_path)# 定义框的坐标 (x1, y1) 是左上角,(x2, y2) 是右下角 x1, y1 200, 550 # 左上角坐标 x2, y2 799, 750 # 右下角坐标 h, w image.…...

echarts按需引入解决项目大小问题
背景: 按需加载缩减项目大小,提升项目性能和可用性 实现: 创建echarts.js main.js进行配置 页面中引用 效果 全量导入 按需加载:...

天气预报echarts
如上图,可以切换温度,降水量,风力风向和空气质量 <template><el-radio-group v-model"selectedData" change"updateChart"><el-radio-button label"temperature">温度</el-radio-butto…...

Kafka-初识
一、Kafka是什么? Kafka是一个高度可扩展、弹性、容错和安全的分布式流处理平台,由服务器和客户端组成,通过高性能TCP网络协议进行通信。它可以像消息队列一样生产和消费数据。可以部署在裸机硬件、虚拟机和容器上,也可以部署在本…...

Redis的主要的特性和优势 ?
Redis 的主要特性 内存存储:Redis 将数据存储在内存中,这使得读写操作非常快速。它还支持将数据持久化到磁盘,以防止数据丢失。 丰富的数据结构:Redis 不仅支持简单的字符串键值对,还支持更复杂的数据结构,…...

yolov5-7.0模型DNN加载函数及参数详解(重要)
yolov5-7.0模型DNN加载函数及参数详解(重要) 引言yolov5(v7.0)1,yolov5.h(加载对应模型里面的相关参数要更改)2,main主程序(1)加载网络(2)检测推理࿰…...

StringEntity 用于将字符串内容作为 HTTP 请求实体(请求体)
StringEntity 类是 Apache HttpClient 库中的一个类,它用于将字符串内容作为 HTTP 请求实体(请求体)。这个类非常适合用于发送 JSON、XML 或其他需要以字符串形式发送的数据。以下是 StringEntity 类的一些常用方法和代码案例: …...

校园系统校园小程序 论坛校园圈系统失物招领、闲置二手、跑腿外卖等校园圈子系统应该具备有哪些功能
针对校园系统、校园小程序、论坛校园圈系统以及失物招领、闲置二手、跑腿外卖等具体功能,一个综合性的校园圈子系统应该具备以下主要功能: 前后端源码查看 一、基础功能 用户注册与登录 提供用户注册和登录功能,支持学生身份验证、手机号验…...

[AWS云]kafka调用和创建
背景:因为因为公司的项目需要使用AWS的kafka,但是在创建和使用过程中都遇到了一些报错和麻烦,毕竟老外的东西,和阿里云、华为使用起来还是不一样。 一、创建(创建的配置过程就略了,就是配置一下可用区、型号࿰…...

查看 Excel 应用程序中已打开的 Excel 文件的完整路径
要查看 Excel 应用程序中已打开的 Excel 文件的完整路径(全路径),你可以通过以下几种方法获取具体路径,尤其是在 VSTO 应用程序中。 方法1:使用 VSTO Excel 外接程序代码 在 VSTO 外接程序代码中,您可以直接…...

学习 RocketMQ 单机部署、消息发送、消息接收
文章目录 RocketMQ 介绍为什么要使用 MQ ?RocketMQ 与其他产品对比vs Kafkavs RabbitMQvs ActiveMQ RocketMQ 重要概念部署 Namesrver、Broker、Dashboard快速入门消息生产者消息消费者 消费模式简单消息1)同步发送2)异步发送3)单…...

【计算机网络】CDN
CDN(Content Delivery Network,内容分发网络)是一种分布式的服务器网络,旨在通过将内容缓存到多个地理位置的服务器上,加速内容的分发和传递。CDN 的主要目的是减少用户访问网站时的延迟,提升用户体验&…...

数据结构:插入排序
1.插入排序 此排序如打扑克牌一样;每次抓牌,把扑克从前向后扒拉;找到合适的位置插入进去—所以叫插入排序; 时间复杂度:O(N^2) int arr[10] { 9,8,7,6,5,4,3,2,1,0 };//数据太多就不好写了 …...

Nginx反向代理配置与负载均衡配置
简介:整理自黑马程序员苍穹外卖的第11节 nginx是什么? nginx的好处 nginx反向代理配置方式 nginx负载均衡的配置方式 nginx负责均衡策略...

axios 前端与 Django 后端的 POST 交互
背景 自己在写一些油猴脚本,前端需要用 JS,后端是自己的服务,是用 Python 的 Django 框架完成的。 油猴脚本中需要通过 POST 方法,向后端传一些数据,所以前端我用的是 axios 库,后端需要用 Django 处理 P…...

数据结构常用术语
一. 常见术语 数据相关 英文术语中文术语Data数据Data element数据元素Data item数据项Data structure数据结构Logical structure逻辑结构Data type数据类型 指针与存储 英文术语中文术语Pointer指针Sequential storage structure顺序存储结构Linked storage structure链状…...

Flask 轻松上手:从零开始搭建属于你的Web应用
引言 随着互联网技术的发展,Web应用程序的需求日益增长。对于开发者来说,选择一个合适的框架至关重要。Flask以其简洁的设计、高度的可定制性和对各种扩展的良好支持,成为了很多项目的基础。无论你是初学者还是有经验的开发者,掌…...

[MyBatis-Plus]快速入门
介绍 MyBatis-Plus是MyBatis的好朋友, 与MyBatis配合, 实现开发效率的提高 官网: 特点: 润物细无声: 只做增强不做改变, 引入它不会对现有工程产生影响, 如丝般顺滑效率自上: 只需简单配置, 即可快速进行单表CRUD, 从而节省大量时间功能丰富: 代码生产, 自动分页, 逻辑删除, …...

单例模式和读者写者问题
文章目录 10. 线程安全的单例模式10.1 什么是设计模式10.2 什么是单例模式10.3 单例模式的特点10.4 饿汉方式和懒汉方式10.5 单例模式的线程池 11. STL和智能指针的线程安全 问题11.1 STL中的容器是否是线程安全的?11.2 智能指针是否是线程安全的? 12. 其他常见的各种锁13. 读…...