Docker系列之应用

docker安装tomcat

  1. 下载tomcat
docker pull tomcat

默认下载官方最新版本镜像
2. 运行容器

docker run -p 8080:8080 -d --name tomcat tomcat
  1. 访问tomcat
    在这里插入图片描述
    此时查看容器是已经成功启动,但是却访问不了。
    在这里插入图片描述
    进入容器内部进一步查找原因
    在这里插入图片描述
    看到tomcat默认部署应用的目录 webapps 里面为空,难怪访问不了,但是有个类似的目录webapps.dist,
    在这里插入图片描述
    我们看到原本在webapps目录下面的文件现在都在webapps.dist目录下面
    在这里插入图片描述
    ps:为了tomcat能正常访问,可以选择在容器里面将webapps.dist目录下的内容复制到webapps里面或挂载本地数据卷的方式到weapps目录下还可以根据官方tomcat镜像制作一个能直接访问的tomcat镜像。
    这里采用挂载宿主机目录的方式。
方式一	 直接修改容器内tomcat文件
 	进入容器	-- docker exec -it tomcat bash
 	复制webapps.dist里面文件到webapps目录下 -- cp -r webapps.dist/* webapps/
 	重启tomcat容器 -- docker restart tomcat

在这里插入图片描述

方式二		将宿主机文件挂载到容器相应目录
// 我们先在本地创建一个 tomcat 目录
mkdir /usr/local/tomcat
// 将容器内 webapps.dist的内容复制到宿主机

// 我们先在本地创建一个 tomcat 目录
mkdir /usr/local/tomcat
// 将容器内 webapps.dist的内容(只复制ROOT目录就行了,仅仅测试而已)复制到宿主机指定目录
docker cp tomcat:/usr/local/tomcat/webapps.dist/ROOT .
// 以挂载的形式启动tomcat
docker run -p 8080:8080 -d --name tomcat -v /usr/local/tomcat:/usr/local/tomcat/webapps tomcat

在这里插入图片描述

docker安装mysql

  • 由于mysql数据库作为数据存储媒介,势必会产生数据写入,所以一般来讲是需要将mysql容器内部的动态数据通过挂载的方式映射到宿主机指定的目录,实现持久化
    1.下载mysql镜像
docker pull mysql

2.启动mysql容器

docker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD=root -v 宿主机数据目录:/var/lib/mysql mysql

注意:mysql8修改了加密规则,如果客户端使用Navicat连接,会出现加密算法报错的问题,启动mysql容器后进入容器使用mysql命令行执行以下命令即可。

alter user 'root'@'%' identified with mysql_native_password by '密码';
flush privileges;

docker安装redis

为redis集群节点通信单独创建一个docker网络

docker network create redis --gateway 192 

创建配置文件

for port in $(seq 1 6); \
do \
mkdir -p /usr/local/redis/node-${port}/conf
touch /usr/local/redis/node-${port}/conf/redis.conf
cat <<- EOF >/usr/local/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done

启动容器

for port in $(seq 1 6); \
do \
docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \
-v /usr/local/redis/node-${port}/data:/data \
-v /usr/local/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --network redis --ip 192.168.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf; \
done

进入任一redis容器

docker exec -it container /bin/sh

执行redis创建集群命令

redis-cli --cluster create 192.168.0.11:6379 192.168.0.12:6379 192.168.0.13:6379 192.168.0.14:6379 192.168.0.15:6379 192.168.0.16:6379 --cluster-replicas 1

docker 部署pgsql

docker run -it --name postgres \
--privileged=true \
--restart always \
-e ALLOW_IP_RANGE=0.0.0.0/0 \
-e POSTGRES_PASSWORD=postgres@qujian \
-p 5432:5432 \
-v /data/postgres:/var/lib/postgresql/data \
-d postgres
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值