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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/465713.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS006:ArcMap常用操作151-200例动图演示

摘要:本文介绍了ArcMap邻域分析、栅格表面分析、水文分析、区域分析、提取分析等工具箱中的工具功能。包括计算图层间点、线、面要素间的距离、位置和角度,创建缓冲区,添加计算信息到属性表,分割面要素,编号&#xff0…

小菜家教平台(三):基于SpringBoot+Vue打造一站式学习管理系统

目录 前言 今日进度 详细过程 相关知识点 前言 昨天重构了数据库并实现了登录功能,今天继续进行开发,创作不易,请多多支持~ 今日进度 添加过滤器、实现登出功能、实现用户授权功能校验 详细过程 一、添加过滤器 自定义过滤器作用&…

SQL进阶技巧:如何计算复合增长率?

目录 0 场景描述 1 数据准备 2 问题分析 3 小结 0 场景描述 复合增长率是第N期的数据除以第一期的基准数据,然后开N-1次方再减去1得到的结果。假如2018年的产品销售额为10000,2019年的产品销售额为12500,2020年的产品销售额为15000&…

python-docx -- 读取word图片

文章目录 概念介绍形状对象读取图片自定义图形 概念介绍 从概念上来讲,word文档分为两层,一个文本层,一个绘画层; 文本层,从上到下,从左到右,流式排版,本页填满则开启新页面&#…

Python数据可视化seaborn

产品经理在做数据分析时可能需要通过可视化来分析。seaborn官网 1. relplot 散点图 https://seaborn.pydata.org/examples/scatterplot_sizes.html import pandas as pd import seaborn as sns df pd.DataFrame({x: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],y: [8, 6, 7, 8, 4, 6,…

释放专利力量:Patently 如何利用向量搜索和 NLP 简化协作

作者:来自 Elastic Matt Scourfield, Andrew Crothers, Brian Lambert 组织依靠知识产权 (IP) 来推动创新、保持竞争优势并创造收入来源。对于希望将新产品推向市场的公司来说,弄清楚谁拥有哪些专利是一项必不可少的能力。搜索数百万项专利可能既困难又耗…

协议栈攻击分类(CISP-PTE笔记)

CISP-PTE笔记 协议栈攻击分类 1.协议栈自身的脆弱性 ​ 1)缺乏数据源验证机制 ​ 2)缺乏完整性验证机制 ​ 3)缺乏机密性验证机制 2.网络接口层攻击 3.网络层攻击 4.应用层攻击 网络攻击的基本模式 被动威胁(不影响通信双…

SpringBoot3集成Junit5

目录 1. 确保项目中包含相关依赖2. 配置JUnit 53. 编写测试类4、Junit5 新增特性4.1 注解4.2 断言4.3 嵌套测试4.4 总结 在Spring Boot 3中集成JUnit 5的步骤相对简单。以下是你可以按照的步骤: 1. 确保项目中包含相关依赖 首先,确保你的pom.xml文件中…

智慧城市智慧城市项目方案-大数据平台建设技术方案(原件Word)

第1章 总体说明 1.1 建设背景 1.2 建设目标 1.3 项目建设主要内容 1.4 设计原则 第2章 对项目的理解 2.1 现状分析 2.2 业务需求分析 2.3 功能需求分析 第3章 大数据平台建设方案 3.1 大数据平台总体设计 3.2 大数据平台功能设计 3.3 平台应用 第4章 政策标准保障…

算法练习:904. 水果成篮

题目链接:904. 水果成篮。 题目意思就是可以选取两个种类的水果不能超过两个种类,该种类个数没有限制, 但是一旦超过两个种类的水果就要停止计数。 示例中数组编号就是就是种类,就是不能出现三个不同编号的数。 1.暴力解法&…

wincc中全局脚本C(c语言脚本)的研究和解密

文章目录 前言一、分析 前言 很多时候我们在wincc中写全局脚本时会为自己的脚本添加密码,但很久很久以后再想修改密码忘记了怎么办呢。 一、分析 经过分析编码有了下面成功 ![请添加图片描述](https://i-blog.csdnimg.cn/direct/33baf91a49da410e82f16b4fbd746c48…

Java+控制台 商城销售系统

Java控制台 商城销售系统 一、系统介绍二、功能展示1.系统登陆2.二维数组实现商城销售系统3.类集实现商城销售系统 四、其它1.其他系统实现 一、系统介绍 实现一个xx商城销售系统的登录功能: 1))打开系统,给出欢迎信息。 2)将用户名和密码定…

微服务中常用分布式锁原理及执行流程

1.什么是分布式锁 分布式锁是一种在分布式系统环境下实现的锁机制,它主要用于解决,多个分布式节点之间对共享资源的互斥访问问题,确保在分布式系统中,即使存在有多个不同节点上的进程或线程,同一时刻也只有一个节点可…

A15基于Spring Boot的宠物爱心组织管理系统的设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

测试自动化如何和业务流程结合?

测试自动化框架固然重要,但是最终自动化的目的都是为了业务服务的。 那测试自动化如何对业务流程产生积极影响? 业务流程的重要性 测试自动化项目并非孤立存在,其生命周期与被测试的应用程序紧密相关。项目的价值在于被整个开发团队所使用&a…

AI - 使用LangChain请求LLM结构化生成内容

AI - 使用LangChain请求LLM结构化生成内容 基于深度学习的大型语言模型(LLM)不仅可以生成文本,还可以帮助我们完成许多复杂任务,如自动化客服、内容创作和数据分析。然而,如何从这些模型中结构化地获取输出&#xff0c…

使用GPT-SoVITS训练语音模型

1.项目演示 阅读单句话 1725352713141 读古诗 1725353700203 2.项目环境 开发环境:linux 机器配置如下:实际使用率百分之二十几, 3.开发步骤 1.首先是准备数据集,要求是wav格式,一到两个小时即可, 2.…

UML的另一个主角——用例图

顺序图和类图已经出过单集,本贴要分享的是用例图。 类图https://blog.csdn.net/jsl123x/article/details/143526286?spm1001.2014.3001.5501顺序图https://jslhyh32.blog.csdn.net/article/details/134350587 目录 一.系统 二.参与者 1.主要参与者 2.次要参与…

set和map的使用

目录 1.关联式容器 2.键值对 3.set 3.1set的模版参数列表 3.2对set的修改 3.2.1insert 3.2.2 erase 3.2.3clear 3.2.4swap 3.2.5 find 3.3set的迭代器 3.4set的容量 4.map 4.1对map的修改 4.1.1insert 4.1.2erase 4.1.3swap 4.1.4clear 4.2map的迭代器 4.3opera…

【5.10】指针算法-快慢指针将有序链表转二叉搜索树

一、题目 给定一个单链表,其中的 元素按升序排序 ,将其转换为 高度平衡的二叉搜索树 。 本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [ -10 , -3 , 0 , …