docker 应用部署
参考:docker 构建nginx服务
环境
Redhat 9
步骤:
1、docker部署MySQL
安装yum 工具包
[root@admin ~]# yum -y install yum-utils.noarch
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。AppStream 3.1 MB/s | 3.2 kB 00:00
BaseOS 756 kB/s | 2.7 kB 00:00
依赖关系解决。
=====================================================================================================================================================================================软件包 架构 版本 仓库 大小
=====================================================================================================================================================================================
安装:yum-utils noarch 4.3.0-5.el9_2 BaseOS 45 k事务概要
=====================================================================================================================================================================================
安装 1 软件包总计:45 k
安装大小:23 k
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务准备中 : 1/1 安装 : yum-utils-4.3.0-5.el9_2.noarch 1/1 运行脚本: yum-utils-4.3.0-5.el9_2.noarch 1/1 验证 : yum-utils-4.3.0-5.el9_2.noarch 1/1
已更新安装的产品。已安装:yum-utils-4.3.0-5.el9_2.noarch 完毕!
[root@admin ~]#
增加阿里云仓库 并去除缓存
[root@admin ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。添加仓库自:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@admin ~]# yum clean all && yum makecache
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。13 个文件已删除
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。Docker CE Stable - x86_64 82 kB/s | 41 kB 00:00
AppStream 85 MB/s | 6.3 MB 00:00
BaseOS 75 MB/s | 1.7 MB 00:00
元数据缓存已建立。
[root@admin ~]#
安装docker
root@admin ~]# yum -y install docker-ce*
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查:0:00:43 前,执行于 2024年04月02日 星期二 15时40分19秒。
依赖关系解决。
=============================================
省略。。。。。。。。
配置docker镜像加速(直接复制粘贴即可)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://7f40piyw.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
拉取mysql 镜像文件
root@admin ~]# systemctl restart docker.service
[root@admin ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
72a69066d2fe: Pull complete
93619dbc5b36: Pull complete
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
0ceb82207cd7: Pull complete
37f2405cae96: Pull complete
e2482e017e53: Pull complete
70deed891d42: Pull complete
Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
[root@admin ~]#
创建mysql数据卷目录
[root@admin ~]# mkdir /docker_mysql/data -p
[root@admin ~]#
创建容器拷⻉配置⽂件⽬录到/docker_mysql⽬录 (由于数据卷目录没有MySQL所需的配置文件所以需要此步)
[root@admin ~]# docker run -id --name mysql -e mysql_root_password=1 mysql:5.7
4ebc146b1082d5c814476d6c76ccff11f893f1279e071840f1b9482018cc07e6
[root@admin ~]# docker cp mysql:/etc/mysql/ /docker_mysql/
Successfully copied 12.3kB to /docker_mysql/
[root@admin ~]#
删除容器
[root@admin ~]# docker rm mysql
mysql
[root@admin ~]#
[root@admin ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@admin ~]#
创建MySQL容器并挂载数据卷
[root@admin ~]# docker run -id --name msql -p 3306:3306 -v /docker_mysql/mysql/:/etc/mysql -v /docker_mysql/data/mysql:/var/lib/mysql -v /docker_mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=1 mysql:5.7
138fe053e936f66787adf2c8242122ea1283d2e00e1647ea0da78d5b0c5227ca
[root@admin ~]#
进入数据库测试
[root@admin ~]# docker exec -it msql /bin/bash
root@138fe053e936:/# mysql -uroot -p1
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
2、docker部署nginx
拉取镜像
[root@admin ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete
a9edb18cadd1: Pull complete
589b7251471a: Pull complete
186b1aaa4aa6: Pull complete
b4df32aa5a72: Pull complete
a0bcbecc962e: Pull complete
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@admin ~]#
创建数据卷目录
[root@admin ~]# mkdir -p /docker_nginx/html
[root@admin ~]# mkdir -p /docker_nginx/logs
[root@admin ~]#
拷贝nginx配置文件
[root@admin ~]# docker run -id --name nginx nginx:latest
576c4841c72b52696d991905d4bb357a9ab5e69257d4b2c0014213f155e5b126
[root@admin ~]# docker cp nginx:/etc/nginx /docker_nginx/
Successfully copied 16.9kB to /docker_nginx/
[root@admin ~]# cd /d
dev/ docker_mysql/ docker_nginx/
[root@admin ~]# cd /docker_nginx/
[root@admin docker_nginx]# ls
html logs nginx
[root@admin docker_nginx]#
删除容器
[root@admin ~]# docker stop nginx
nginx
[root@admin ~]# docker rm nginx
nginx
[root@admin ~]#
创建nginx容器并挂载数据卷
[root@admin ~]# docker run -id --name nginx -p 80:80 -v /docker_nginx/nginx/:/etc/nginx -v /docker_nginx/html:/usr/share/nginx/html -v /docker_nginx/logs/:/var/log/nginx nginx
curl命令测试
[root@admin ~]# curl 192.168.200.133
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.21.5</center>
</body>
</html>
[root@admin ~]#
发现403错误(没有index.html文件)
检查配置文件没有index.html文件
进入nginx/html下增加文件
[root@admin html]# ls
[root@admin html]# vim index.html
[root@admin html]# cat index.html
sadggh1k
[root@admin html]#
curl命令测试
[root@admin html]# curl 192.168.200.133
sadggh1k
[root@admin html]
3、docker部署tomcat
拉取tomcat镜像文件
[root@admin html]# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
0e29546d541c: Pull complete
9b829c73b52b: Pull complete
cb5b7ae36172: Pull complete
6494e4811622: Downloading [========================================> ] 44.38MB/54.57MB
6494e4811622: Downloading [=========================================> ] 44.91MB/54.57MB
6494e4811622: Downloading [============================================> ] 48.61MB/54.57MB
8f7c0eebb7b1: Downloading [========> ] 34.34MB/203.1MB
6494e4811622: Downloading [=============================================> ] 49.14MB/54.57MB
6494e4811622: Downloading [=============================================> ] 49.67MB/54.57MB
6494e4811622: Pull complete
668f6fcc5fa5: Pull complete
dc120c3e0290: Pull complete
8f7c0eebb7b1: Pull complete
77b694f83996: Pull complete
0f611256ec3a: Pull complete
4f25def12f23: Pull complete
Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest
创建数据卷目录
[root@admin ~]# mkdir /tomcat
[root@admin ~]#
创建容器拷贝配置文件
[root@admin ~]# docker run -id --name=tomcat tomcat
/bin/bash
049add93e21773d1175e9de2c5aecbde99069bc552ea5e58fe43486dd7dc19af
[root@admin ~]#
[root@admin ~]# docker cp tomcat:/usr/local/tomcat /tomcat/
Successfully copied 19.3MB to /tomcat/
[root@admin ~]# cd /tomcat/
[root@admin tomcat]# ls
tomcat
[root@admin tomcat]#
删除容器
[root@admin tomcat]# docker rm tomcat
tomcat
创建容器挂载数据卷
[root@admin ~]# docker run -id --name=tomcat -p 8080:8080 -v /tomcat/tomcat:/usr/local/tomcat tomcat
e91774eaac35ff405287d52876cd59779f2bcab577e4550b26591eaa013fd124docker: Error response from daemon: driver failed programming external connectivity on endpoint tomcat (b69726032861fe417817221d9f3a175fa2df831efbc849e9367fc6c3158c22d2): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.17.0.4:8080 ! -i docker0: iptables: No chain/target/match by that name.(exit status 1)).
报出错误重启docker即可
[root@admin ~]# systemctl restart docker.service
[root@admin ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@admin ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e91774eaac35 tomcat "catalina.sh run" 3 minutes ago Created tomcat
31405e9d01c0 nginx "/docker-entrypoint.…" 20 minutes ago Exited (0) 13 seconds ago nginx
138fe053e936 mysql:5.7 "docker-entrypoint.s…" 28 minutes ago Exited (0) 11 seconds ago msql
[root@admin ~]# docker start tomcat
tomcat
创建tomcat网页文件
[root@admin ~]# mkdir /tomcat/tomcat/webapps/ROOT
[root@admin ~]# cd /tomcat/tomcat/webapps/ROOT
[root@admin ROOT]# vim index.html
[root@admin ROOT]# cat index.html
sagdshgk1
[root@admin ROOT]#
测试
[root@admin ~]# curl 192.168.200.133:8080
sagdshgk1
[root@admin ~]#
相关文章:
docker 应用部署
参考:docker 构建nginx服务 环境 Redhat 9 步骤: 1、docker部署MySQL 安装yum 工具包 [rootadmin ~]# yum -y install yum-utils.noarch 正在更新 Subscription Management 软件仓库。 无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-…...
java.awt.FontFormatException: java.nio.BufferUnderflowException
Font awardFont Font.createFont(Font.TRUETYPE_FONT, awardFontFile).deriveFont(120f).deriveFont(Font.BOLD);使用如上语句创建字体时出现问题。java.awt.FontFormatException: java.nio.BufferUnderflowException异常表明在处理字体数据时出现了缓冲区下溢(Buf…...
C++ 枚举类型 ← 关键字 enum
【知识点:枚举类型】● 枚举类型(enumeration)是 C 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。 ● 枚举元素作为常量,它们是有值的。C 编译时,依序对枚举元素赋整型值 0,1,2,3,…。 下面代…...

MySQL故障排查与优化
一、MySQL故障排查 1.1 故障现象与解决方法 1.1.1 故障1 1.1.2 故障2 1.1.3 故障3 1.1.4 故障4 1.1.5 故障5 1.1.6 故障6 1.1.7 故障7 1.1.8 故障8 1.1.9 MySQL 主从故障排查 二、MySQL优化 2.1 硬件方面 2.2 查询优化 一、MySQL故障排查 1.1 故障现象与解决方…...
如何做一个知识博主? 善用互联网检索
Google 使用引号: 使用双引号将要搜索的短语括起来,以便搜索结果中只包含该短语。例如,搜索 "人工智能" 将只返回包含该短语的页面。 排除词汇: 在搜索中使用减号 "-" 可以排除特定词汇。例如,搜索 "苹果 -手机" 将返回关于苹果公司的结果,但…...

《QT实用小工具·十》本地存储空间大小控件
1、概述 源码放在文章末尾 本地存储空间大小控件,反应电脑存储情况: 可自动加载本地存储设备的总容量/已用容量。进度条显示已用容量。支持所有操作系统。增加U盘或者SD卡到达信号。 下面是demo演示: 项目部分代码如下: #if…...
作为一个初学者该如何学习kali linux?
首先你要明白你学KALI的目的是什么,其次你要了解什么是kali,其实你并不是想要学会kali你只是想当一个hacker kali是什么: 只是一个集成了多种渗透工具的linux操作系统而已,抛开这些工具,他跟常规的linux没有太大区别。…...

多线程学习-线程池
目录 1.线程池的作用 2.线程池的实现 3.自定义创建线程池 1.线程池的作用 当我们使用Thread的实现类来创建线程并调用start运行线程时,这个线程只会使用一次并且执行的任务是固定的,等run方法中的代码执行完之后这个线程就会变成垃圾等待被回收掉。如…...

Linux第4课 Linux的基本操作
文章目录 Linux第4课 Linux的基本操作一、图形界面介绍二、终端界面介绍 Linux第4课 Linux的基本操作 一、图形界面介绍 本节以Ubuntu系统的GUI为例进行说明,Linux其他版本可自行网搜。 图形系统进入后,左侧黄框内为菜单栏,右侧为桌面&…...

堆排序解读
在算法世界中,排序算法一直是一个热门话题。推排序(Heap Sort)作为一种基于堆这种数据结构的有效排序方法,因其时间复杂度稳定且空间复杂度低而备受青睐。本文将深入探讨推排序的原理、实现方式,以及它在实际应用中的价…...

docker + miniconda + python 环境安装与迁移(详细版)
本文主要列出从安装dockerpython环境到迁移环境的整体步骤。windows与linux之间进行测试。 简化版可以参考:docker miniconda python 环境安装与迁移(简化版)-CSDN博客 目录 一、docker 安装和测试 二、docker中拉取minicondaÿ…...

蓝桥杯刷题第八天(dp专题)
这道题有点像小学奥数题,解题的关键主要是: 有2种走法固走到第i级阶梯,可以通过计算走到第i-1级和第i-2级的走法和,可以初始化走到第1级楼梯和走到第2级楼梯。分别为f[1]1;f[2]1(11)1(2)2.然后就可以循环遍历到后面的状态。 f[i…...

【WEEK6】 【DAY1】DQL查询数据-第一部分【中文版】
2024.4.1 Monday 目录 4.DQL查询数据(重点!)4.1.Data Query Language查询数据语言4.2.SELECT4.2.1.语法4.2.2.实践4.2.2.1.查询字段 SELECT 字段/* FROM 表查询全部的某某查询指定字段 4.2.2.2.给查询结果或者查询的这个表起别名(…...

Linux:权限篇
文章目录 前言1.用户2.文件的权限管理2.1 修改文件的权限2.2 修改文件的拥有者2.3 修改文件的所属组 3.file指令4.umask指令4.目录的权限管理总结 前言 Linux权限在两个地方有所体现,一种是使用用户:分为root超级用户员与普通用户。另一个是体现在文件的…...

Lua热更新(xlua)
发现错误时检查是否:冒号调用 只需要导入asset文件夹下的Plugins和Xlua这两个文件即可,别的不用导入 生成代码 和清空代码 C#调用lua using Xlua; 需要引入命名空间 解析器里面执行lua语法 lua解析器 LuaEnv 单引号是为了避免引号冲突 第二个参数是报错时显示什么提示…...
并查集(基础+带权以及可撤销并查集后期更新)
并查集 并查集是一种图形数据结构,用于存储图中结点的连通关系。 每个结点有一个父亲,可以理解为“一只伸出去的手”,会指向另一个点,初始时指向自己。一个点的根节点是该点的父亲的父亲的..的父亲,直到某个点的父亲…...
基于 Java 的数据结构和算法 (不定期更新)
JavaIsBestLang 数据结构 Collection 是 Java 中的接口,被多个泛型容器接口所实现。在这里,Collection 是指代存放对象类型的数据结构。 ArrayList 函数名功能size()返回 this 的长度add(Integer val)在 this 尾部插入一个元素add(int idx, Integer …...

考研回忆录【二本->211】
备考时长差不多快一年半,从22年的11月底开始陆陆续续地准备考研,因为开始的早所以整个备考过程显得压力不是很大,中途还去一些地方旅游,我不喜欢把自己绷得太紧。虽然考的不是很好,考完我甚至都没准备复试,…...
【XCPC笔记】2023 (ICPC) Jiangxi Provincial Contest——ABCIJKL 做题记录
补题 赛后gym练习及补题,gym链接:2023 (ICPC) Jiangxi Provincial Contest – Official Contest 另外,D题我也打算找机会学习写下,C题的博弈论还需要好好理解,感觉都是比较有趣的数学问题 补题顺序如下 补题L [Zhang …...

猫头虎分享已解决Bug || **URLError (URL错误)** 全方位解析
博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...