美文网首页凯哥Java-工作总结从零学Java笔录
Docker学习11-Docker常规方式安装软件

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

作者: 凯哥Java | 来源:发表于2022-12-14 14:35 被阅读0次

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

    安装的总体步骤:

    1:搜索镜像;

    2:拉取镜像;

    3:查看镜像;

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

    5:停止镜像;

    6:移除镜像

    [图片上传失败...(image-ac2c42-1670999455437)]

    案例一:安装tomcat

    0b07d1a3f414bc647064a6c51cbb65a0.png 3478966cfa677b6cf12f454c8151a4aa.png 6b1bc040dab3466de0870a85a8c2d9f7.png

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

    [图片上传失败...(image-4afab3-1670999455437)]

    这是为什么?

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

    3e6a4234fd1ccd484eedfdc5c1119610.png

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

    我们进入到webapps看看:

    [图片上传失败...(image-614c15-1670999455437)]

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

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

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

    [图片上传失败...(image-ec4d7a-1670999455437)]

    [图片上传失败...(image-724bb2-1670999455437)]

    再次访问:

    可以看到访问到是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

    [图片上传失败...(image-ae0e67-1670999455437)]

    mysql -uroot -p

    e96f4c910dc32584e56a568624307327.png

    OK,进入到mysql中了。

    [图片上传失败...(image-704442-1670999455436)]

    接着我们通过命令,创建表,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中,默认的字符编码导致的。

    [图片上传失败...(image-164b6e-1670999455436)]

    都是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

    [图片上传失败...(image-18f3e7-1670999455434)]

    案例命令:

    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需要赋权

    [图片上传失败...(image-60015a-1670999455435)]

    [图片上传失败...(image-9835e5-1670999455435)]

    重新赋权后:

    [图片上传失败...(image-991b19-1670999455435)]

    查看当前运行的容器。有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)留言交流哦。

    相关文章

      网友评论

        本文标题:Docker学习11-Docker常规方式安装软件

        本文链接:https://www.haomeiwen.com/subject/tuphqdtx.html