• 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

    作者是:哈喽沃德先生

  • 相关阅读:
    SonarQube 插件之 Issues Report & SonarLint 的配置及使用
    Docker搭建自己的Gitlab CI Runner
    Nexus OSS 3 搭建并配置使用 Docker & Git LFS 仓库
    js字符串去掉回车和空格
    使用QtCreator来进行UML建模
    Qt字符串转二维码字符串
    C++10进制转16进制字符串互转
    Qt设置控件透明度
    Qt在槽函数里判断是哪个对象触发的信号
    Qt求极值
  • 原文地址:https://www.cnblogs.com/zgqbky/p/13566342.html
Copyright © 2020-2023  润新知