docker小白第七天

news2024/11/16 23:58:18

docker小白第七天

tomcat安装

docker hub上面查找tomcat镜像

在这里插入图片描述
点进tomcat,可以看到下载镜像的命令。但是因为文件太大,并且是国外下载镜像很慢,所以我们从前期配置好的阿里云镜像仓库下载。

docker search tomcat
docker pull tomcat

在这里插入图片描述

docker启动tomcat容器

然后下载完成后,查看是否已拉取到本地

docker images tomcat

启动tomcat镜像,新建一个容器实例。

docker run -d -p 8080:8080 --name tomcat1 tomcat
-p小写代表   主机端口:docker容器端口
-P大写代表   随机分配端口
i:交互
t:终端
d:后台

然后docker ps查看是否启动容器成功。
在这里插入图片描述然后访问猫的首页,localhost:8080,可能会出现访问不到的问题,以下是解决方案。

在这里插入图片描述

通过交互式命令行再次进tomcat容器查看信息
docker exec -it tomcat1 /bin/bash
ls -l

在这里插入图片描述
cd进webapps查看,发现里边什么也没有
在这里插入图片描述

rm -r webapps
新版的tomcat已经不用webapps作为访问的初始页面了,需要把这个删掉,用webapps.dist代替
mv webapps.dist webapps
对webapps.dist改名

重启虚机,然后输入关闭防火墙命令

systemctl stop firewalld
测试完成后,记得在开启防火墙
systemctl start firewalld

在宿主机windows上,输入虚拟机ip地址:8080,即可访问。
在这里插入图片描述

tomcat访问webapps免修改版

docker pull billygoo/tomcat8-jdk8
docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk8
替换为老板的tomcat进行启动

mysql安装

拉取mysql镜像

docker search mysql
docker pull mysql:5.7
下载5.7版本
docker images mysql:5.7
查看镜像是否下载成功

在这里插入图片描述

创建容器

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
如果linux上装过mysql,且已经运行了,则不能使用docker启动mysql容器,占用3306端口。

然后输入docker ps查看已经启动的容器
在这里插入图片描述

docker exec -it 398a3f377d60 /bin/bash
以交互式命令行进入docker容器界面
mysql -uroot -p
然后输入前边配置的root账户的密码

在这里插入图片描述
然后就可以执行一些数据库命令了

show databases;
create database db01;
use db01;
create table t1(id int, name varchar(20));
insert into t1 values(1,'z3');
select * from t1;
记得加英文的冒号

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

windows宿主机通过工具访问容器数据库

在虚拟机上新建了一个linux系统,然后起了一个容器数据库,端口是3306,尝试在宿主机windows系统上通过数据库图形化管理工具进行连接查看。
注意:记得关闭虚拟机的防火墙

systemctl stop firewalld

在数据库管理工具上测试,输入虚机ip,和端口,点测试连接。
在这里插入图片描述
然后连接数据库,设置刚刚新建的db01为默认库,执行命令查看里边的表t1数据。
在这里插入图片描述
注意问题一,数据库插入中文字符报错,可以通过以下命令到linux服务器内的数据库查看

show variables like 'character%';
查看编码解码的设置

在这里插入图片描述
可以看到client客户端的编码方式是latin1,不是utf-8.
在这里插入图片描述
注意问题二,删除容器后,里边的mysql数据可能会丢失,记得挂载容器卷。

mysql容器实战避雷

插入中文字符报错解决

前文提到两个问题,需要注意避雷,通过实践案例演示一遍。先停掉并删除之前的数据库容器实例。

docker stop 容器id
docker rm -f 容器id

然后重头开始新建mysql容器

docker run -d -p 3306:3306 --privileged=true -v /cz/mysql/log:/var/log/mysql -v /cz/mysql/data:/var/lib/mysql -v /cz/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7

–privileged=true是开启容器卷的全部权限
同时多个-v,表示一次挂载多个容器卷,若新建不成功,记得开启刚刚关闭的防火墙或者杀死刚刚还存在的3306端口。如下图所示 可以看到已经新建成功。
在这里插入图片描述

cd /cz/mysql/conf
vim my.cnf

然后编辑my.cnf

[client]
default_character_set = utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
然后保存退出
docker restart mysql
改完配置后重启mysql容器
docker exec -it mysql bash
进入mysql容器的命令行
mysql -uroot -p
进入数据库
show variables like 'character%';
再次查看编码解码的设置

在这里插入图片描述
然后在数据库执行如下命令

create database db01;
use db01;
create table t1(id int, name varchar(20));

在windows的mysql管理工具,执行插入中文字符不报错了。
在这里插入图片描述

误删除docker容器mysql后的数据处理

1、当误删除mysql容器实例时,若创建该容器时有挂载容器卷,则再次创建一个新容器时,容器卷的挂载位置相同,则启动容器后,会发现数据还在。
2、宿主机的卷若被删除,则无法恢复。这是注意点。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

后端主流框架-SpringMvc-day2

Java中的文件下载 2 文件下载 文件下载:就是将服务器(表现在浏览器中)中的资源下载(复制)到本地磁盘; 2.1 前台代码 前台使用超链接,超链接转到后台控制器,在控制器通过流的方式…

Intel FPGA 技术开放日

概要 时间:2023.11.14 全天 ( 9:00 - 16: 20) 地点:北京望京. 凯悦酒店 主题内容:分享交流了Intel FPGA 产品技术优势和落地实践方案。 会议的议程 开场致词: FPGA业务,是几年前intel收购而…

虚拟环境和Pycharm中均有transforms仍报ModuleNotFoundError:No module named ‘transformers‘

问题:运行新模型,配置了新环境,下载了包后,仍然报ModuleNotFoundError:No module named transformers 错误。 查看Pycharm解释器: 没问题!!!? 命令行查看虚…

Flink Job 执行流程

Flink On Yarn 模式 ​ 基于Yarn层面的架构类似 Spark on Yarn模式,都是由Client提交App到RM上面去运行,然后 RM分配第一个container去运行AM,然后由AM去负责资源的监督和管理。需要说明的是,Flink的Yarn模式更加类似Spark on Ya…

Hive安装笔记——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

将下发的ds_db01.sql数据库文件放置mysql中 12、编写Scala代码,使用Spark将MySQL的ds_db01库中表user_info的全量数据抽取到Hive的ods库中表user_info。字段名称、类型不变,同时添加静态分区,分区字段为etl_date,类型为String&am…

【电商项目实战】基于SpringBoot完成首页搭建

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《电商项目实战》。🎯🎯 &am…

【PyQt学习篇 · ⑭】:QTableView的使用

文章目录 QTableView的使用示例 QTableView的使用 QTableView 是 PyQt 中用于显示表格数据的窗口部件,它提供了一个灵活的方式来显示和编辑数据。下面是一些关于 QTableView 的使用的具体信息: 创建 QTableView 对象: from PyQt5.QtWidgets …

计算机网络基础:OSI参考模型是什么?

一、概述 OSI (Open Systems Interconnection Model,开放式系统互联模型),由ISO ( International Organization for Standardization,国际标准化组织 ) 收录在ISO 7489标准中并于1984年发布。 意义: 在OSI没有出来之前我们的网络有如下问题…

Linux Debian12使用podman安装upload-labs靶场环境

一、upload-labs简介 PHP语言编写,持续收集渗透测试和CTF中针对文件上传漏洞的靶场,总共21关,每一关都包含着不同的上传绕过方式。 二、安装podman环境 Linux Debian系统如果没有安装podman容器环境,可以参考这篇文章先安装pod…

如何在vscode当中预览html文件运行结果

如何在vscode当中预览html文件运行结果 下载拓展内容打开拓展界面下载拓展 运行html文件参考内容 上一篇文章当中讲了如何实现在网页上对html文件的预览,但是这样子其实在运行代码的过程当中效果比较差,那么还需要可以实时预览运行的结果 下载拓展内容 打开拓展界面 下载拓展 …

微信小程序发放红包封面及领取

微信小程序发放红包封面及领取 一、微信红包封面开放平台配置发放的红包封面二、小程序后管平台设置配置录入红包封面奖品信息三、微信小程序调用接口效果 一、微信红包封面开放平台配置发放的红包封面 微信红包封面开放平台 红包封面的发放方式有:领取二维码、领…

unity 保存和加载窗口布局

这么简单的事网上一堆废话文章 右上角,Layout点开后有保存和删除 要切换布局点红框里的已经保存的布局

Linux下MQTT环境的简单应用及搭建——之Mosquitto

文章目录 前言一、ubuntu搭建mqtt服务器 | 概要二、整体架构流程 | 技术实现细节1、下载源码2、安装Mosquitto3、解压并修改配置文件4、关于Mosquitto常见的一些操作指令5、启动mosquitto6、测试mosquitto测试1:Linux多终端交互测试测试2:Linux与Windows…

2023安洵杯-秦岭防御军wp

reverse 感觉有点点简单## import base64 def ba64_decode(str1_1):mapp "4KBbSzwWClkZ2gsr1qAQu0FtxOm6/iVcJHPY9GNp7EaRoDf8UvIjnL5MydTX3eh"data_1 [0] * 4flag_1 [0] * 3for i in range(32, 127):for y in range(32, 127):for k in range(32, 127):flag_1[0]…

MIT线性代数笔记-第30讲-奇异值分解

目录 30.奇异值分解打赏 30.奇异值分解 奇异值分解(简称 S V D SVD SVD分解)可以将一个比较复杂的矩阵用更小更简单的几个子矩阵相乘来表示,这些小矩阵描述的都是矩阵的重要的特性。奇异值分解在图形降噪、推荐系统中都有很重要的应用。 对…

最优化考试之牛顿法

最优化考试之牛顿法 一、牛顿法1.问题条件2.求解过程3.例子 PS 一、牛顿法 1.问题条件 目标函数 f ( x ) f(x) f(x),求极小值初始点 x 0 x_0 x0​精度要求e(没有提就是近似0) 2.求解过程 求解一阶雅克比矩阵 ∇ f ( x ) ∇f(x) ∇f(x)和二…

分享11 种有用的 JavaScript 技巧

今天这篇文章,我想与你分享 11个有用的JavaScript实用小技巧,它们将极大地提高你的工作效率。 1.生成随机颜色的两种方式 1).生成RandomHexColor const generateRandomHexColor () > {return #${Math.floor(Math.random() * 0xffffff)…

Java多线程的概念以及三种实现方式(Thread类,Callable接口,Runnable接口)

目录 1.线程2.多线程的应用场景3.并发和并行4.多线程的实现方式1.继承Thread类的方式进行实现2.实现**Runnable接口**的方式进行实现3.利用Callable接口和Future接口方式实现 4.多线程几种实现方式之间的对比 1.线程 线程是操作系统能够进行运算调度的最小单位。它被包含在进程…

Jmeter之JSON断言

需求 我们发送一个请求&#xff0c;结果返回json数据&#xff0c;我们需要根据json数据中code的值来判断此次请求是否成功。 接口案例&#xff1a; PostMapping(value "/login") public ResponseMessage<String> login(RequestBody SeckillUserDTO seckill…

LeetCode-移除元素(27) 合并两个有序数组(88)

1.移除元素&#xff08;27&#xff09; 题目描述&#xff1a; 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入…