准备工作:
关闭防火墙和selinux
命令:
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
部署一下镜像加速器
1.部署tomcat
下载tomcat镜像
命令:[root@localhost ~]# docker pull tomcat
创建tomcat容器
命令:[root@localhost ~]# docker run -di --name tomcat -p 8080:8080 tomcat
进入容器
命令:[root@localhost ~]# docker exec -it tomcat /bin/bash
查看 webapps 目录下是否有 ROOT 项目,我们熟悉的 Tomcat 页面一般就在这个项目中
webapps目录下什么也没有,其实 Tomcat 在比较新的版本中将默认的 ROOT 项目放在了 webapps.dist 中,如果你真想访问 http://192.168.20.20:8080/ 看到 Tomcat 页面,将其复制至 webapps 就行
命令:root@cfef9af17114:/usr/local/tomcat# cd webapps.dist/
命令:root@cfef9af17114:/usr/local/tomcat/webapps.dist# cp -r ROOT/ /usr/local/tomcat/webapps
然后在浏览器上面访问:http://IP:8080 就可以看见tomcat页面
2.部署nginx
下载nginx镜像
命令:[root@localhost ~]# docker pull nginx
创建nginx容器
命令:[root@localhost ~]# docker run -di --name nginx -p 80:80 nginx
将容器内的配置文件拷贝到指定目录(请先提前创建好目录)
命令:
[root@localhost ~]# mkdir -p /data/docker_nginx
[root@localhost ~]# docker cp nginx:/etc/nginx /data/docker_nginx
重命名宿主机 /data/docker_nginx/nginx 为 /data/docker_nginx/conf
命令:[root@localhost ~]# mv /data/docker_nginx/nginx/ /data/docker_nginx/conf
终止并删除容器(目录挂载操作只能在创建容器时设置)
命令:
[root@localhost ~]# docker stop nginx
[root@localhost ~]# docker rm nginx
[root@localhost ~]# docker ps -a
创建 Nginx 容器,并将容器中的 /etc/nginx 目录和宿主机的 /data/nginx/conf 目录进行挂载
命令:[root@localhost ~]# docker run -di --name nginx -p 80:80 -v /data/docker_nginx/conf:/etc/nginx nginx
然后在浏览器上访问 http://192.168.20.20:80
3.部署MySQL
下载mysql镜像
命令:[root@localhost ~]# docker pull mysql:8.0.21
创建mysql容器
命令:[root@localhost ~]# docker run -di --name mysql8 -p 3306:3306 -v /data/docker_mysql/conf:/etc/mysql/conf.d -v /data/docker_mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.21
说明:
-p:代表端口映射,格式为 宿主机映射端口:容器运行端口
-e:代表添加环境变量 MYSQL_ROOT_PASSWORD 是 root 用户的登陆密码
连接容器中的 MySQL 时,只需要连接宿主机的 IP + 指定的映射端口(3306)就行
结果报错了如下图:
原因:这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password
解决办法:
进入mysql容器
命令:
[root@localhost ~]# docker ps -a
[root@localhost ~]# docker exec -it 5d576d658f58 /bin/bash
进入数据库
命令:root@5d576d658f58:/# mysql -uroot -p
Enter password: 1234
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
注意:
这个时候,如果重启下docker里的mysql容器,用mysql命令登录mysql服务器。你会发现,用新改的密码是登录不了的,需要用老的密码(1234)才能登录。这是因为之前的alter语句的问题。要想保持密码一致,需要再执行下alter语句。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
这里要把刚才那个 % 改成 localhost 才行
4.部署redis
下载redis镜像
命令:[root@localhost ~]# docker pull redis
创建redis容器
命令:[root@localhost ~]# docker run -di --name redis -p 6379:6379 redis
连接容器中的 Redis 时,只需要连接宿主机的 IP + 指定的映射端口就行
5.部署Elasticsearch
下载Elasticsearch镜像
命令:[root@localhost ~]# docker pull elasticsearch:7.8.1
创建容器,为了方便演示,修改 ES 启动占用内存大小
命令:[root@localhost ~]# docker run -e ES_JAVA_OPTS="-Xms256m -Xmx512m" -e "discovery.type=single-node" -di --name es -p 9200:9200 -p 9300:9300 -p 5601:5601 -v /mydata/docker_es/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.8.1
安装中文分词器
(1)进入容器
命令:[root@localhost ~]# docker exec -it es /bin/bash
(2)安装中文分词器
命令:[root@5d65bdd6b33a elasticsearch]# elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.1/elasticsearch-analysis-ik-7.8.1.zip
(3)重启es
命令:docker restart es
然后在浏览器上访问http://192.168.20.20:9200/
5.1安装head插件
下载head插件
命令:[root@localhost ~]# docker pull mobz/elasticsearch-head:5
创建容器
命令:[root@localhost ~]# docker run -di --name es-head -p 9100:9100 mobz/elasticsearch-head:5
在浏览器中打开 elasticsearch-head 页面,填入 Elasticsearch 地址
进入 elasticsearch 容器内部,修改配置文件 elasticsearch.yml
5.2进入容器
格式:docker exec -it 容器ID或名称 /bin/bash
命令:[root@localhost ~]# docker exec -it 0412b76b9dde /bin/bash
5.3修改配置文件
命令:[root@0412b76b9dde elasticsearch]# vi config/elasticsearch.yml
在 elasticsearch.yml 中添加如下内容:
# 跨域请求配置(为了让类似 head 的第三方插件可以请求 es)
http.cors.enabled: true
http.cors.allow-origin: "*"
5.4重启容器 es
命令:[root@localhost ~]# docker restart es
6.部署Solr
下载Solr镜像
命令:[root@localhost ~]# docker pull solr
创建容器
命令:[root@localhost ~]# docker run -di --name=solr -p 8983:8983 solr
然后在浏览器上访问http://192.168.20.20:8983
7.部署RabbitMQ
下载镜像
命令:[root@localhost ~]# docker pull rabbitmq
创建容器
命令:[root@localhost ~]# docker run -di --name rabbitmq -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 15671:15671 -p 15672:15672 -p 25672:25672 rabbitmq
进入容器并开启管理功能
7.1进入容器
命令:[root@localhost ~]# docker exec -it rabbitmq /bin/bash
7.2开启 RabbitMQ 管理功能
命令:root@9b6314ea429d:/# rabbitmq-plugins enable rabbitmq_management
然后在浏览器上访问http://192.168.20.20:15672 账号密码都是guest
文章转载于: https://www.cnblogs.com/mrhelloworld/p/docker5.html
作者是:哈喽沃德先生