Docker入门到实践 (六) docker常用软件安装


一、前言

  在上一篇文章中已经介绍了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


Web管理页面地址为 ip:15672




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构建容器镜像,部署项目




                   如果有遇到不懂或者有问题时,可以扫描下方二维码,欢迎进群交流与分享,希望能够跟大家交流学习!

发布了76 篇原创文章 · 获赞 253 · 访问量 43万+

猜你喜欢

转载自blog.csdn.net/qq_39135287/article/details/103029723