docker安装常用软件(mysql,tomcat,redis,nginx)

docker的安装可以去看我的另一篇博客docker博客链接

安装mysql

确定版本拉取镜像

docker pull mysql:5.7.36

在这里插入图片描述

启动mysql服务

启动mysql服务,后台运行,指定root用户密码,指定容器名字

 docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql:5.7.36
  • –name 容器名
  • -e MYSQL_ROOT_PASSWORD=xxx 给root用户指定密码
  • -d 后台运行
  • -p 宿主机端口:容器端口

上面run命令没有使用数据卷,将数据持久化到宿主机系统

启动mysql+数据卷持久化

启动mysql服务,后台运行,指定root用户密码,指定容器名字,使用数据卷将数据持久化到宿主机系统

注意:通过dockerhub描述得知mysql存储文件目录放在容器中这个目录/var/lib/mysql
在这里插入图片描述

docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 -v mysqldata:/var/lib/mysql mysql:5.7.36

在这里插入图片描述

修改mysql配置

如果想根据自己的需要修改mysql配置文件,可以将对应的目录也一起挂载出去
在这里插入图片描述

docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 -v mysqldata:/var/lib/mysql -v mysqlconfig:/etc/mysql/conf.d -v mysqllog:/var/log/mysql mysql:5.7.36
docker exec -it 容器id bash

 mysql -u root -p123456

 SHOW VARIABLES LIKE 'character%';

在这里插入图片描述
字符集不正确插入中文会有问题

通过数据卷修改数据库配置
在这里插入图片描述

 cd /var/lib/docker/volumes/mysqlconfig/_data
vim my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve


注意一定要重启容器
在这里插入图片描述

安装tomcat

拉取镜像

docker pull tomcat:9.0-jdk8-corretto

启动一个基本tomcat服务

docker run -d -p 8080:8080 --name tomcat tomcat:9.0-jdk8-corretto
  • –name 容器名
  • -d 后台运行
  • -p 宿主机端口:容器端口

通过ip地址访问发现
在这里插入图片描述

在这里插入图片描述
发现webapps目录里面是空的
在这里插入图片描述
修改完后再次访问即可出现tomcat页面
在这里插入图片描述
或者也可以直接拉取老板的镜像

拉取镜像

docker pull tomcat:8.0.52-jre8

运行

docker run -d -p 8080:8080 --name tomcat tomcat:8.0.52-jre8

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

通过数据卷自动挂载

注意 部署web应用在容器中的目录为/usr/local/tomcat/webapps 配置文件在/usr/local/tomcat/conf

docker run -d -p 8080:8080 --name tomcat -v apps:/usr/local/tomcat/webapps tomcat:8.0.52-jre8

在这里插入图片描述
在数据卷对应的目录创建文件夹,编写index.html,访问ip::8080/emp/index.html
在这里插入图片描述
在这里插入图片描述

挂载配置文件目录

docker run -d -p 8080:8080 --name tomcat -v apps:/usr/local/tomcat/webapps -v confs:/usr/local/tomcat/conf tomcat:8.0.52-jre8

如果配置信息没有立即生效(例如端口),可能要以该数据卷新起一个容器才会生效

手动挂载tomcat9运行

# -v表示挂载,前面的目录为宿主机目录结构,后面的目录为容器中的目录结构
docker run --name tomcat  -p 8080:8080 
-v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps 
-v /usr/local/tomcat/conf:/usr/local/tomcat/conf -d tomcat:9.0-jdk8-corretto 

在这里插入图片描述
这里我们通过再启动一个tomcat容器,然后从容器中拷贝一个server.xml文件放到挂载conf文件夹中

docker run --name tomcat1  -p 8080:8080  -d tomcat:9.0-jdk8-corretto 
docker exec -it ad37af bash

在这里插入图片描述
拷贝命令

docker cp tomcat1:/usr/local/tomcat/conf/  /usr/local/tomcat/

重启tomcat

docker start tomcat

因为9版本的tomcatwebapps里面是空的所以需要复制webapps.dist才能访问

 cd webapps.dist/
 cp -r ./* ../webapps
 

在这里插入图片描述
即可访问成功

安装redis

拉取镜像

docker pull redis:6.2.5

自动挂载运行容器


docker run  -p 6379:6379 --name redis --privileged=true -v redisconfig:/etc/redis -v redisdata:/data -d redis:6.2.5 redis-server /etc/redis/redis.conf

复制配置文件

 cp ./redis.conf /var/lib/docker/volumes/redisconfig/_data

切记:
不要配置daemonize yes,否则无法启动容器:启动后立即停止

手动挂载安装步骤

mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf

在刚才新建的redis/conf中新建文件redis.conf,内容如下:

#bind 127.0.0.1 //允许远程连接
protected-mode no 
appendonly yes //持久化
requirepass 123456 //密码

启动

docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

猜你喜欢

转载自blog.csdn.net/qq_44866153/article/details/121799249