首页 > 其他分享 >Docker学习11-Docker常规方式安装软件

Docker学习11-Docker常规方式安装软件

时间:2022-12-14 14:57:58浏览次数:77  
标签:11 镜像 redis 学习 mysql 软件 Docker docker

本文咱们将通过按照Tomcat、按照MySQL、安装Redis这三个实战安装,来熟悉在docker中怎么安装软件,咱们使用端口映射,及数据卷的使用场景

安装的总体步骤:

1:搜索镜像;

2:拉取镜像;

3:查看镜像;

4:启动镜像==>需要做服务断开映射;

5:停止镜像;

6:移除镜像

fe4f13926561bba567aaf99e787c8d25.png

案例一:安装tomcat

0b07d1a3f414bc647064a6c51cbb65a0.png3478966cfa677b6cf12f454c8151a4aa.png

6b1bc040dab3466de0870a85a8c2d9f7.png

我们可以看到重启成功了。来,访问下试试:

8f2f1f2046d1ab53e1ba7f80e75edc63.png

这是为什么?

因为新版tomcat做了修改。我们进入到tomcat目录:

3e6a4234fd1ccd484eedfdc5c1119610.png

会发现有webapps及webapps.dist两个目录。我们知道,tomcat的应用一般都是存放在webapps中的。

我们进入到webapps看看:

8c574f5d8eb5516bbdf252b149a922bd.png

我们发现,webapps文件夹下面竟然是空。

所以,我们访问的时候,就是404了。

修改:将webapps目录删除掉,将webapps.dist修改成webapps再测试

8971efc3c6cb0e615b4cbc3f23e86dce.png

92a7edfd13e2e9b5afe2acd22f350a98.png

再次访问:

可以看到访问到是tomcat10 。

那么我想用tomcat8怎么办?

docker pull billygoo/tomcat8-jdk8

docker run -d -p 8080:8080 --name tomcat8 billygoo/tomcat8-jdk8

71be4a16c0311e109ffff2b7028671b3.png

案例二:mysql的安装

本次以mysql5.7为例:

docker pull mysql:5.7

 

启动命令公式:

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

说明:-e就是设置环境变量。e693a0f3dc0014d1af6604f34f949076.png

通过命令行连接到mysql:

通过命令进入到容器中:

docker exec -it 2303fc3dbe68 /bin/bash

489862725e39b187c4bcfdce449a44ee.png

mysql -uroot -p

e96f4c910dc32584e56a568624307327.png

OK,进入到mysql中了。

fa7a34e493139a4c1651cfcd7581212e.png

接着我们通过命令,创建表,insert数据,然后在查询。

create database dockerdb01;

use dockerdb01;

insert into t1 values(1,'kaigejava');

select * from t1;

794bb9b14f91c226f3635c379eaaf8b4.png

在外部的win10系统中使用Navicat连接试试 。

mysql容器宿主机的ip:192.168.50.128.

fab67edea126a7c1c96e34fef04f4c23.png

OK .可以连接。

遇到的问题:

问题一:乱码

当插入中文的时候,报错

920442fbae6011ef29670a80180e709f.png

这是为什么呢?因为docker中,默认的字符编码导致的。

776d6c521582fa02a47b9930fd0ba9df.png

都是latin1的字符编码。

问题2:删除容器后,里面的mysql数据如何办?

是不是应该做个数据卷挂载。

综上所述,我们按照mysql应该使用以下方式:

f26f8d1f775b5b6652043eb4d92759af.png

 

实战版命令:

docker run -d -p 3306:3306 --privileged=true -v /宿主机上mysqllog全路径:/容器内部log路径 -v /宿主机mysqldata全部路径:/容器中mysqldata路径 -v /宿主机中mysqlconf全路径:/容器中mysqlconfLuj  -e MYSQL_ROOT_PASSWORD=123456 --name mysql57 mysql:5.7

在宿主机上创建mysql的conf文件:

内容为:

vim my.cnf

 

[client]

default_character_set=utf8

[mysqld]

collation_server=utf8_general_ci

character_set_server=utf8

edbf5277c243efe04ee0c8ecd1ca8fd9.png

案例命令:

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

启动后查看docker当前运行的容器:

a6ae952aeb80132a675e168ddab21a3a.png

案例3:常规安装Redis

1:pull redis 6.0.8

2:在宿主机创建/app/redis

3:将任意redis.conf文件复制到宿主机的/app/redis中

4:修改redis.conf配置文件,使其能让外部连接

5:启动reids.实战启动命令:

docker run -p 6379:6379 --name reids608 --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf

72feae346153d802602d523066b372bb.png

499fe2c518e8b124cfbf099110b4a498.png

注意:权限不足也会导致启动redis失败

复制过去的redis.conf需要赋权

5c4bd45e15f499013341820c0e7a8103.png

4b46000fb91c728a5eb1e8c7c92369e5.png

重新赋权后:

093ac5c8caac0e3b2f8b3098047be8a5.png

查看当前运行的容器。有reids.OK

直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:

【图文教程】Windows11下安装Docker Desktop

【填坑】在windows系统下安装Docker Desktop后迁移镜像位置

【Docker学习系列】Docker学习1-docker安装

【Docker学习系列】Docker学习2-docker设置镜像加速器

【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?

【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令

【Docker学习系列】Docker学习系列3:常用命令之容器命令

【Docker学习系列】Docker学习4-常用命令之重要的容器命令

【Docker教程系列】Docker学习5-Docker镜像理解

【Docker教程系列】Docker学习6-Docker镜像commit操作案例

【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云

【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?

「Docker学习系列教程」9-Docker容器数据卷介绍

「Docker学习系列教程」10-Docker容器数据卷案例

【Docker学习教程系列汇总】笔记及遇到问题解决文章

 

 

结束语

如操作有问题欢迎去 我的个人博客(www.kaigejava.com)留言或者 微信公众号(凯哥Java)留言交流哦。

 

标签:11,镜像,redis,学习,mysql,软件,Docker,docker
From: https://www.cnblogs.com/kaigejava/p/16982146.html

相关文章

  • OpenMLDB 社区月报 | 2022年11月
    十一月,OpenMLDB进行了高频的小版本迭代,共发布四个版本,平均每周一次。v0.6.5、v0.6.6、v0.6.7和v0.6.8陆续与广大开发者见面,在增强功能的同时,也提高了运维效率,对易用性......
  • 邮件安全喜报!Coremail两大方案入选“2022年软件行业典型应用案例”
    12月5日,由中国软件行业协会联合中软国际有限公司、江苏省软件行业协会主办的2022中国程序员节在江苏南京圆满落幕,本次活动聚焦当前我国对数字技术创新及应用发展的现实需求,......
  • docker-compose + mysql8.x 主从数据库配置
    0.准备(略过docker的安装与镜像拉取)docker/docker-compose安装拉取mysql8.x 1.master和slave的mysql配置master:[mysqld]server-id=11118log-bin=mysql-bi......
  • BL110网关远程监测充电桩断网故障解决方案
    在碳中和等因素的影响下,燃油车逐步退出市场,新能源汽车逐步替代燃油车市场,获得了爆发性增长的市场空间。近年来,中国新能源汽车市场保持高速增长,新能源汽车当前的保有量、增......
  • 现代软件工程个人总结
    软件工程课程总结这个学期主要学习的内容是Android、Python爬虫、Python flask框架,完成了一个简单的家庭记账本app,完成了一个简单的体温登记app,完成结对作业(中国疫情数......
  • 直播平台软件开发,flutter Wrap 自动换行组件
    直播平台软件开发,flutterWrap自动换行组件先来简单的看一下源码 Wrap({  super.key,  this.direction=Axis.horizontal,  this.alignment=WrapAlign......
  • centos7清理docker垃圾文件
    相信很多朋友都有这个docker容器导致主机磁盘空间满了的问题,应用容器在宿主机上长期运行,应用实例启停容器,会产生大量的停止的容器,无容器使用的数据卷、网络配置,无容器......
  • DK-centoa7安装docker-compose
    ###重要表述大家好,我是DK。在经过我:"6*8=8?"天的"苦心孤诣、挖空心思、殚精竭虑、绞尽脑汁、刿心刳腹",终于总结出了这"无人匹敌"的文章。最后我得出了一个强有力的......
  • 【2022-12-11】连岳摘抄
    23:59水在浑浊时,道理也很清楚,只要一直坚持向低处流,就没有走不出的困境。                              ......
  • 软件测试岗位的需求与前景怎么样?
    众所周知,在一些发达国家,软件测试是公司研发部门的重要组成部分,在整个软件研发队伍中占据着很大的比重,软件测试人员和软件开发人员的比例基本维持在1:1是合理的范围,但早......