文章目录
一、前言
在上一篇文章中已经介绍了docker数据的备份、恢复与迁移, 下面正式进入到docker部署常用软件的讲解。
二、docker常用软件的部署
1、docker安装Tomcat
//1、拉取tomcat镜像,这里以tomcat:latest为例
docker pull tomcat
//2、后台运行tomcat镜像
docker run -d -p 8080:8080 --name=mytomcat -v $(pwd)/webapps:/usr/local/tomcat/webapps -v $(pwd)/logs:/usr/local/tomcat/logs tomcat
//注意:如果出现Docker挂载宿主机目录显示cannot open directory .:Permission denied
解决办法:在挂载目录后面 多加一个--privileged=true参数即可
-d
:表示后台运行容器
-p
:指定端口映射,第一个8080 表示对外暴露的端口 (即:应用服务端口),第二个8080 表示tomcat容器端口
--name
:指定容器名称
-v $(pwd)/webapps:/usr/local/tomcat/webapps
:将宿主机当前目录下的webapps目录 映射到 tomcat容器的应用配置程序目录,注意
:这样映射会导致tomcat的/webapps目录下的文件或目录全部被清空
,如果不想这样,可以映射到tomcat的/webapps目录下的自定义文件夹
,如:/usr/local/tomcat/webapps/web
-v $(pwd)/logs:/usr/local/tomcat/logs
:将宿主机当前目录下的logs目录 映射到 tomcat容器的日志目录
2、docker安装Mysql
//1、拉取mysql镜像,这里以mysql:5.6为例
docker pull mysql:5.6
//2、后台运行mysql:5.6镜像
docker run -d -p 3306:3306 --name=new_mysql -v $(pwd)/conf:/etc/mysql/conf.d -v $(pwd)/logs:/logs -v $(pwd)/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
//注意:如果出现Docker挂载宿主机目录显示cannot open directory .:Permission denied
解决办法:在挂载目录后面 多加一个--privileged=true参数即可
-d
:表示后台运行容器
-p
:指定端口映射,第一个3306 表示对外暴露的端口 (即:应用服务端口),第二个3306 表示mysql容器端口
--name
:指定容器名称
-v $(pwd)/conf:/etc/mysql/conf.d
:将宿主机当前目录下的webapps目录 映射到 mysql容器的应用配置程序目录,注意:/conf.d
是一个目录,不是文件
-v $(pwd)/logs:/logs
:将宿主机当前目录下的logs目录 映射到 mysql容器的日志目录
-v $(pwd)/data:/var/lib/mysql
:将宿主机当前目录下的data目录 映射到 mysql容器的数据存储目录
-e MYSQL_ROOT_PASSWORD=123456
:初始化 root 用户的密码
3、docker安装Redis
//1、拉取redis镜像,这里以redis:3.2为例
docker pull redis:3.2
//2、后台运行redis:3.2镜像
docker run -d -p 6379:6379 --name=myredis -v $(pwd)/data:/data -v $(pwd)/redis.conf:/usr/local/etc/redis/redis.conf redis:3.2 redis-server /usr/local/etc/redis/redis.conf --appendonly yes
//3、在$(pwd)/redis.conf目录下,创建一个redis.conf配置文件
redis.conf配置文件下载 https://pan.baidu.com/s/1OG_DezTtDYm5mt0JmKJWFg
redis.conf配置文件需要修改四处地方:
1、注释掉bind 127.0.0.1,即#bind 127.0.0.1,这里的bind指的是只有指定的网段才能远程访问这个redis,注释掉后,就没有这个限制了
2、把protected-mode属性设置成no (默认是yes, 禁止了远程访问)
3、把daemonize属性设置成yes (表明需要在后台运行)
4、找到# requirepass foobared,删除前面的注释符号#,并把foobared修改成自己的密码 或者 另起一行 requirepass 自己的密码
//注意:如果出现Docker挂载宿主机目录显示cannot open directory .:Permission denied
解决办法:在挂载目录后面 多加一个--privileged=true参数即可
-d
:表示后台运行容器
-p
:指定端口映射,第一个6379表示对外暴露的端口 (即:应用服务端口),第二个6379 表示mysql容器端口
--name
:指定容器名称
--v $(pwd)/data:/data
:将宿主机当前目录下的data目录 映射到 redis容器的数据存储目录
-v $(pwd)/redis.conf:/usr/local/etc/redis/redis.conf
:将宿主机当前目录下的redis.conf目录 映射到 redis容器的配置目录,注意:/redis.conf
是一个目录,不是文件
redis-server /usr/local/etc/redis/redis.conf --appendonly yes
:在容器中执行redis-server启动命令,并以/usr/local/etc/redis/redis.conf
路径下的配置文件启动 redis,同时--appendonly yes
开启持久化配置(AOF)
4、docker安装RabbitMQ
/**
*拉取RabbitMQ镜像,这里以rabbitmq:3-management为例
*拉取RabbitMQ镜像的时候,选择带有"management"版本的,不要选择latest版本的,因为带有"management"版本的才带有管理界面。
**/
docker pull rabbitmq:3-management
//2、后台运行rabbitmq:3-management镜像
docker run -d --name=rabbitmq -p 5672:5672 -p 15672:15672 --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3-management
或者
//此方式的默认账号密码为:guest:guest,默认虚拟机为:/
docker run -d --name=rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
5、docker安装Nginx
//1、拉取nginx镜像,这里以nginx:latest为例
docker pull nginx
//2、后台运行redis:3.2镜像
docker run -d -p 80:80 --name=mynginx nginx
//注意:如果出现Docker挂载宿主机目录显示cannot open directory .:Permission denied
解决办法:在挂载目录后面 多加一个--privileged=true参数即可
-d
:表示后台运行容器
-p
:指定端口映射,第一个80 表示对外暴露的端口 (即:应用服务端口),第二个80 表示mysql容器端口
--name
:指定容器名称
Docker入门到实践系列文章列表:
Docker入门到实践 (一) docker简介与安装
Docker入门到实践 (二) docker常用命令讲解
Docker入门到实践 (三) Dockerfile解析与镜像制作
Docker入门到实践 (四) docker容器数据卷与数据卷容器
Docker入门到实践 (五) docker数据的备份、恢复与迁移
Docker入门到实践 (六) docker常用软件安装
Docker入门到实践 (七) 本地镜像推送到阿里云 和 下载镜像到本地
Docker入门到实践 (八) Docker私有仓库的搭建与配置
Docker入门到实践 (九) IDEA集成Docker构建容器镜像,部署项目
如果有遇到不懂或者有问题时,可以扫描下方二维码,欢迎进群交流与分享,希望能够跟大家交流学习!