当前位置: 首页 > news >正文

Docker学习—Docker的安装与使用

Docker安装

1.卸载旧版

首先如果系统中已经存在旧的Docker,则先卸载:

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

2.配置Docker的yum库

首先要安装一个yum工具

yum install -y yum-utils

安装成功后,执行命令,配置Docker的yum源:

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件包:yum makecache fast

3.安装Docker

最后,执行命令,安装Docker

yum install docker-ce docker-ce-cli containerd.io

4.启动和校验

# 启动Docker
systemctl start docker# 停止Docker
systemctl stop docker# 重启
systemctl restart docker# 设置开机自启
systemctl enable docker# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps进入容器:docker exec -it b28289c7c5e1  /bin/bash

5.配置镜像加速器

Docker使用

安装mysql

docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=Mm502986 \ mysql

重启和设置自启动

sudo docker restart mysql

sudo docker update mysql --restart=always

然后就可以连接数据库了!

常见命令

进入容器:docker exec -it mysql bash

数据卷

所以只需要修改宿主机的文件,容器内的文件就可以改变。宿主文件位置是固定不变的。

例子:

创建容器是挂载 容器内的目录

然后通过inspect查看数据卷,可以看到对应的宿主目录

修改主目录的文件,即可以修改对应的容器文件。

指定本地目录挂载:

自定义镜像

即把自己的java应用,定义成镜像部署到docker容器中。

镜像结构是分层的,有一些已经拉取过的基础镜像就不用拉取了,节省空间。

镜像文件:

这些指令不需要记,能看懂就行

直接把所有的都基于别人的基础镜像

创建镜像:

实例:

Dockerfile文件:

把domo文件和jdk基础镜像都上传好:

加载底层基础镜像:

创建容器镜像

运行我们的应用镜像:

然后浏览器访问成功:

网络

让容器在同一个网络中,这样就可以相互访问

创建一个网络

把mysql容器加入到这个网络中:

此时mysql有两个网络,一个是默认的

创建容器的时候就加入网络:

部署Java应用

1、项目打包

2、把jar包和Dockerfile一起放到虚拟机中

3、创建镜像

4、启动应用

docker run -d --name hm -p 8080:8080 --network heima hmall

部署前端

1、把静态资源和配置文件上传服务器

2、创建nginx容器并完成挂载

注意后端应用、nginx和mysql这三个容器都要在一个网络

DockerCompose

前面的步骤,需要自己一个一个的部署,比较麻烦

能够自动创建应用和运行

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-netdepends_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学习—Docker的安装与使用

Docker安装 1.卸载旧版 首先如果系统中已经存在旧的Docker,则先卸载: yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2.配置Docker的yum库 首先…...

HC-SR04超声波传感器详解(STM32)

HC-SR04是一款广泛使用的超声波传感器,它通过发射和接收超声波来测量距离。本文将详细介绍HC-SR04的工作原理、引脚描述、STM32的接线方式以及如何通过STM32控制HC-SR04来测量距离。 一、HC-SR04传感器介绍 HC-SR04超声波传感器的主要参数如下: 工作电…...

如何在BSV区块链上实现可验证AI

​​发表时间:2024年10月2日 nChain的顶尖专家们已经找到并成功测试了一种方法:通过区块链技术来验证AI(人工智能)系统的输出结果。这种方法可以确保AI模型既按照规范运行,避免严重错误,遵守诸如公平、透明…...

Python快速安装软件包到环境的方案

问题描述 直接在终端输入,显示安装numpy包要20分钟, pip install numpyxxx.whl解决方案 直接搜索pip install 后在终端显示的.whl文件,在pypi.org官网下载, 之后在终端进入下载目录,从.whl文件安装软件包即可 pip …...

npm入门教程17:准备发布的npm包

一、环境准备 安装Node.js和npm: 确保你的计算机上已安装Node.js和npm。可以通过运行node -v和npm -v命令来检查它们的版本。如果没有安装,可以从Node.js官方网站下载并安装最新版本。 注册npm账号: 访问npm官网,点击“Sign Up”…...

协程1 --- 发展历史

文章目录 一个编译器问题背景解决 协程为什么一开始没发展成一等公民?自顶向下、逐步求精(Top-down, stepwise refinement)线程的出现 协程的雄起IO密集型同步语义实现异步发展史 线程和协程的关系并发性调度方式资源占用 一个编译器问题 协…...

VBA10-处理Excel的动态数据区域

end获取数据边界 1、基本语法 1-1、示例: 2、配合row和column使用 2-1、示例1 2-2、示例2 此时,不管这个有数值的区域,怎么增加边界,对应的统计数据也会跟着变的!...

【git】使用记录

一、安装 参考:Git2.45.2下载安装记录(windows 11)_win11安装git-CSDN博客...

代码随想录算法训练营第三十八天|Day38 动态规划

322. 零钱兑换 视频讲解:https://www.bilibili.com/video/BV14K411R7yv https://programmercarl.com/0322.%E9%9B%B6%E9%92%B1%E5%85%91%E6%8D%A2.html 思路 #define min(a, b) ((a) > (b) ? (b) : (a)) int coinChange(int* coins, int coinsSize, int amount…...

使用C++和libcurl库实现HTTP请求(GET、POST、文件上传)

在现代软件开发中,与外部API服务进行通信已成为常见需求。本文将展示如何使用C和libcurl库实现基本的HTTP请求,包括GET请求、POST请求(带JSON数据)以及包含文件上传的POST请求。 准备工作 首先,需要确保已安装libcur…...

makefile例子

$指代当前目标&#xff0c;就是Make命令当前构建的那个目标。比如&#xff0c;make foo的 $ 就指代foo。 $< 指代第一个前置条件。比如&#xff0c;规则为 t: p1 p2&#xff0c;那么$< 就指代p1。 $? 指代比目标更新的所有前置条件&#xff0c;之间以空格分隔。比如&a…...

用环形数组实现队列(多种高级方法,由浅入深)

同普通数组实现的队列相比&#xff0c;普通数组的头结点和尾节点都是固定的&#xff0c;在进行移除的时候如果移除了一个节点&#xff0c;后面所有节点都需要进行移除操作&#xff0c;需要的时间复杂度更高 在环形数组中&#xff0c;确定了头尾指针的环形数组很好地解决了这一…...

springboot框架使用RabbitMQ举例代码

以前分享过一个理论有兴趣的小伙伴可以看下 https://blog.csdn.net/Drug_/article/details/138164180 不多说 还是直接上代码 第一步&#xff1a;引入依赖 可以不指定版本 <!-- amqp --><dependency><groupId>org.springframework.boot</groupId…...

Java实现一个延时队列

文章目录 前言正文一、基本概念1.1 延时队列的特点1.2 常见的实现方式 二、Java原生的内存型延时队列2.1 定义延时元素DelayedElement2.2 定义延时队列管理器DelayedQueueManager2.3 消费元素2.4 调试2.5 调试结果2.6 精髓之 DelayQueue.poll() 三、基于Redisson的延时队列3.1 …...

为什么说vue是双向数据流

Vue.js 被称为 双向数据绑定&#xff08;two-way data binding&#xff09;&#xff0c;是因为它支持数据在 视图&#xff08;View&#xff09; 和 模型&#xff08;Model&#xff09; 之间双向流动。这意味着&#xff0c;当 数据变化 时&#xff0c;视图会自动更新&#xff1b…...

创造属于你的 Claude Prompt 和个性化 SVG 卡片|对李继刚老师提示词的浅浅解析与总结

❤️ 如果你也关注大模型与 AI 的发展现状&#xff0c;且对大模型应用开发非常感兴趣&#xff0c;我会快速跟你分享最新的感兴趣的 AI 应用和热点信息&#xff0c;也会不定期分享自己的想法和开源实例&#xff0c;欢迎关注我哦&#xff01; &#x1f966; 微信公众号&#xff…...

redis与本地缓存

本地缓存是将数据存储在应用程序所在的本地内存中的缓存方式。既然&#xff0c;已经有了 Redis 可以实现分布式缓存了&#xff0c;为什么还需要本地缓存呢&#xff1f;接下来&#xff0c;我们一起来看。 为什么需要本地缓存&#xff1f; 尽管已经有 Redis 缓存了&#xff0c;但…...

git撤销commit和add

撤销commit git reset --soft HEAD^撤销add git reset .查看状态 git status...

【361】基于springboot的招生宣传管理系统

摘 要 使用旧方法对招生宣传管理系统的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在招生宣传管理系统的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。这次开发的招…...

【一些关于Python的信息和帮助】

Python是一种广泛使用的高级编程语言&#xff0c;它的设计哲学强调代码的可读性和简洁的语法&#xff08;尤其是使用空格缩进划分代码块&#xff0c;而不是使用大括号或关键字&#xff09;。Python支持多种编程范式&#xff0c;包括面向对象、命令式、函数式和过程式编程。 以…...

2026论文写作工具红黑榜:AI论文工具怎么选?一篇看懂

2026年论文写作工具市场百花齐放&#xff0c;红榜推荐千笔AI、ThouPen、豆包&#xff0c;均适配国内学术规范&#xff1b;黑榜需避开低质免费工具、无真实引用平台及过度依赖全文生成的工具。选择时可按需求匹配度 - 数据可信度 - 成本承受力三维模型进行评估。一、红榜&#x…...

DiskInfo硬盘检测工具:3步掌握硬盘健康状态的智能监测方案

DiskInfo硬盘检测工具&#xff1a;3步掌握硬盘健康状态的智能监测方案 【免费下载链接】DiskInfo DiskInfo based on CrystalDiskInfo 项目地址: https://gitcode.com/gh_mirrors/di/DiskInfo 在数字化时代&#xff0c;硬盘作为数据存储的核心载体&#xff0c;其健康状态…...

如何用铜钟音乐打造纯粹听歌体验?5个让你告别广告干扰的核心优势

如何用铜钟音乐打造纯粹听歌体验&#xff1f;5个让你告别广告干扰的核心优势 【免费下载链接】tonzhon-music 铜钟 (Tonzhon.com): 免费听歌; 没有直播, 社交, 广告, 干扰; 简洁纯粹, 资源丰富, 体验独特&#xff01;(密码重置功能已回归) 项目地址: https://gitcode.com/Git…...

Abp微服务之间的DTO不要使用object作为字段类型

这是一个典型的ABP vNext 微服务间接口定义和序列化问题&#xff0c;当类型定义为 object时&#xff0c;在不同服务之间传输会导致类型信息丢失。// 服务A public interface IMyServiceA : IApplicationService {Task<MyDto> GetDataAsync(); }public class MyDto {publi…...

uniapp复制文本的两种实现方式对比:从基础到进阶

Uniapp复制文本功能深度解析&#xff1a;从基础实现到跨平台适配 在移动应用和H5页面开发中&#xff0c;复制文本到剪贴板是一个看似简单却直接影响用户体验的基础功能。作为一款跨平台开发框架&#xff0c;Uniapp提供了多种实现方式&#xff0c;但每种方法都有其特定的适用场…...

Qwen2.5-7B+Tools应用场景解析:智能客服、信息查询等实战案例

Qwen2.5-7BTools应用场景解析&#xff1a;智能客服、信息查询等实战案例 1. 引言&#xff1a;当大语言模型遇上工具 想象一下&#xff0c;你正在运营一家电商平台&#xff0c;每天要处理上千条客户咨询。人工客服团队疲于应对&#xff0c;而客户等待时间越来越长。这时&#…...

文脉定序在Milvus向量库中的应用:Hybrid Search后重排序增强方案

文脉定序在Milvus向量库中的应用&#xff1a;Hybrid Search后重排序增强方案 在构建智能检索系统时&#xff0c;我们常常遇到一个尴尬的局面&#xff1a;系统能“搜得到”一堆结果&#xff0c;但最相关、最准确的答案却不一定排在最前面。这就像在图书馆里找到了正确的书架&am…...

Qwen3-Embedding-4B开箱即用:SGlang部署避坑指南

Qwen3-Embedding-4B开箱即用&#xff1a;SGlang部署避坑指南 1. Qwen3-Embedding-4B简介 Qwen3-Embedding-4B是Qwen系列最新推出的文本嵌入模型&#xff0c;专为语义检索、文本分类等任务优化。作为4B参数量的中型模型&#xff0c;它在效果与效率之间取得了良好平衡&#xff…...

WebGIS驱动的智慧校园导航系统:架构设计与功能实现全解析

1. WebGIS如何让校园导航更智能&#xff1f; 第一次接触校园导航系统是在三年前&#xff0c;当时某高校的IT部门负责人向我吐槽&#xff1a;学生们总在开学季迷路&#xff0c;传统纸质地图根本不够用。这让我意识到&#xff0c;基于WebGIS的智慧导航系统不是锦上添花&#xff0…...

【obs studio】从零开始:高效录制屏幕与声音的完整指南

1. 为什么选择OBS Studio录制屏幕与声音&#xff1f; 如果你正在寻找一款免费、开源且功能强大的屏幕录制工具&#xff0c;OBS Studio绝对是你的不二之选。我最初接触这款软件是因为需要录制一些技术教程&#xff0c;试过市面上不少付费软件后&#xff0c;发现OBS Studio不仅完…...