本文咱们将通过按照Tomcat、按照MySQL、安装Redis这三个实战安装,来熟悉在docker中怎么安装软件,咱们使用端口映射,及数据卷的使用场景
大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~
案例一:安装tomcat
我们可以看到重启成功了。来,访问下试试:
这是为什么?
会发现有webapps及webapps.dist两个目录。我们知道,tomcat的应用一般都是存放在webapps中的。
我们发现,webapps文件夹下面竟然是空。
所以,我们访问的时候,就是404了。
修改:将webapps目录删除掉,将webapps.dist修改成webapps再测试
再次访问:
docker pull billygoo/tomcat8-jdk8
docker run -d -p 8080:8080 --name tomcat8 billygoo/tomcat8-jdk8
案例二:mysql的安装
。
启动命令公式:
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
通过命令行连接到mysql:
docker exec -it 2303fc3dbe68 /bin/bash
mysql -uroot -p
OK,进入到mysql中了。
接着我们通过命令,创建表,insert数据,然后在查询。
insert into t1 values(1,'kaigejava');
在外部的win10系统中使用Navicat连接试试 。
OK .可以连接。
遇到的问题:
问题一:乱码
这是为什么呢?因为docker中,默认的字符编码导致的。
都是latin1的字符编码。
问题2:删除容器后,里面的mysql数据如何办?
实战版命令:
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
collation_server=utf8_general_ci
案例命令:
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
3:将任意redis.conf文件复制到宿主机的/app/redis中
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失败