centos7.6部署docker常见应用

准备工作:

关闭防火墙和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

作者是:哈喽沃德先生

原文地址:https://www.cnblogs.com/zgqbky/p/13566342.html