Docker容器

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

本文主要是介绍Docker学习11-Docker常规方式安装软件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

https://img1.sycdn.imooc.com/639976d50001e84b07870319.jpg

大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~

安装的总体步骤:

1:搜索镜像;

2:拉取镜像;

3:查看镜像;

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

5:停止镜像;

6:移除镜像

https://img4.sycdn.imooc.com/639976f5000129d505530245.jpg

案例一:安装tomcat

https://img1.sycdn.imooc.com/639976ff00019f1105530150.jpg


https://img4.sycdn.imooc.com/6399770b0001046e05530144.jpg

https://img4.sycdn.imooc.com/639977100001d8f305530122.jpg

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

https://img1.sycdn.imooc.com/6399771c00012ce305530204.jpg

这是为什么?

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

https://img4.sycdn.imooc.com/6399773d00010a6405530310.jpg

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

我们进入到webapps看看:

https://img4.sycdn.imooc.com/6399776f0001067705530119.jpg

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

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

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

https://img2.sycdn.imooc.com/639977940001b11202230036.jpg

https://img2.sycdn.imooc.com/6399779800010d1905530048.jpg

再次访问:

可以看到访问到是tomcat10 。

那么我想用tomcat8怎么办?

docker pull billygoo/tomcat8-jdk8

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

https://img1.sycdn.imooc.com/6399779c0001f38805530241.jpg

案例二:mysql的安装

本次以mysql5.7为例:

docker pull mysql:5.7


启动命令公式:

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

https://img1.sycdn.imooc.com/639977b200012c0b05530095.jpg

通过命令行连接到mysql:

通过命令进入到容器中:

docker exec -it 2303fc3dbe68 /bin/bash

https://img4.sycdn.imooc.com/639977d200011fed05530161.jpg

mysql -uroot -p

https://img3.sycdn.imooc.com/639977d70001f29305530262.jpg

OK,进入到mysql中了。

https://img2.sycdn.imooc.com/639977db0001077e04230257.jpg

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

create database dockerdb01;

use dockerdb01;

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

select * from t1;

https://img1.sycdn.imooc.com/639977df0001264005530388.jpg

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

mysql容器宿主机的ip:192.168.50.128.

https://img4.sycdn.imooc.com/639977e300015dd403320261.jpg

OK .可以连接。

遇到的问题:

问题一:乱码

当插入中文的时候,报错

https://img2.sycdn.imooc.com/639977f600014e9b05530253.jpg

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

https://img4.sycdn.imooc.com/639977fa00014e9b05530253.jpg

都是latin1的字符编码。

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

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

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

https://img1.sycdn.imooc.com/6399780a0001d64b05530187.jpg

实战版命令:

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



案例命令:

 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当前运行的容器:


案例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

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

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




这篇关于Docker学习11-Docker常规方式安装软件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!