文章目录

  • 1 mysql
    • 1.1 拉取mysql镜像
    • 1.2 启动mysql&设置端口&设置密码
    • 1.3 进入mysql容器
    • 1.4 输入密码
    • 1.5 将mysql容器数据挂载到宿主机中
    • 1.5 将mysql数据库备份为sql文件
    • 1.5 执行sql导入数据库
  • 2 redis
    • 2.1 拉取redis镜像到本地
    • 2.2 启动redis服务
    • 2.3 查看启动日志
    • 2.4 加载外部自定义配置启动redis容器
      • 2.4.1 redis镜像默认是没有redis.conf配置文件的,需要去官网下载指定版本的配置文件
      • 2.4.2 将官方安装包中配置文件进行复制到宿主机指定目录中如
      • 2.4.3 修改需要自定义的配置
      • 2.4.4 加载配置启动
    • 2.5 进入redis容器里面加入数据
    • 2.6 可视化工具连接redis查看数据
    • 2.7 将数据目录挂载到本地保证数据安全
  • 3 nginx
    • 3.1 拉取nginx
    • 3.2 启动nginx容器
    • 3.3 进入nginx
    • 3.4 查看nginx配置文件路径
    • 3.5 复制配置文件到宿主机
    • 3.6 挂载nginx配置以及html到宿主机外部
    • 3.7 负载均衡配置
  • 4 tomcat
    • 4.1 拉取tomcat
    • 4.2 启动tomcat
    • 4.3 将webapps目录挂载在外部
  • 5 RabbitMQ
    • 5.1 拉取镜像
    • 5.2 运行
    • 5.2 防火墙开放两个端口或关闭防火墙
    • 5.3 启动容器
    • 5.4 访问http:ip:15672
  • 6 fastdfs
    • 1.获取镜像
    • 2.测试上传
    • 开放端口(如果是服务器还要开放安全组的端口)
  • 7 kafka
    • 7.1 安装zookeeper
    • 7.2 安装kafka
    • 7.3 kafka-manager 图形管理
  • 8 mongo
    • 8.1 拉取mongo镜像
    • 8.2 创建容器运行mongo
    • 8.3 进入mongo
    • 8.4 创建管理员账号
    • 8.5 退出后再次进入容器进行认证
    • 8.6 创建一个普通用户,user库
    • 8.7再次退出用普通用户登录
    • 8.8 使用user数据库
    • 8.9 在test表中添加一天数据
  • 9 elasticsearch
    • 9.1 访问
  • 10 hadoop 单机
    • 10.1 拉取镜像
    • 10.2 创建容器运行
    • 10.3 访问地址

1 mysql

1.1 拉取mysql镜像

 docker pull mysql:5.7       # 拉取 mysql 5.7docker pull mysql         # 拉取最新版mysql镜像

1.2 启动mysql&设置端口&设置密码

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql

1.3 进入mysql容器

docker exec mysql -it bash

1.4 输入密码

docker exec -it mysql bash

1.5 将mysql容器数据挂载到宿主机中

docker run --name mysql -v /root/mysql/data:/var/lib/mysql -v /root/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql

1.5 将mysql数据库备份为sql文件

  • 导出全部数据
docker exec mysql|容器id sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql
  • 导出指定数据库数据
docker exec mysql sh -c 'exec mysqldump --databases 库名 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/student.sql
  • 导出指定数据库数据并且不要数据
docker exec mysql sh -c 'exec mysqldump --no-data --databases student -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/student1.sql

1.5 执行sql导入数据库

docker exec -i mysql sh  -c 'exec mysql -uroot p"$MYSQL_ROOT_PASSWORD"' < /root/xxx.sql

2 redis

2.1 拉取redis镜像到本地

 docker pull redis

2.2 启动redis服务

docker run -name redis -d redis -d redis     #没有暴露外部端口
docker run -name redis -p 6379:6379 -d redis #暴露6379端口给外部宿主机连接

2.3 查看启动日志

docker exec -it 容器id|容器名称

2.4 加载外部自定义配置启动redis容器

2.4.1 redis镜像默认是没有redis.conf配置文件的,需要去官网下载指定版本的配置文件

wget http://download.redis.io/releases/redis-6.0.8.tar.gz

这个命令首先需要安装有 wget

yum install wget

2.4.2 将官方安装包中配置文件进行复制到宿主机指定目录中如

/root/redis/redis.conf

2.4.3 修改需要自定义的配置

bind 0.0.0.0         #开启远程全限

2.4.4 加载配置启动

docker run --name redis6382 -v /root/redis/redis6382.conf:/etc/redis/redis.conf -v /root/redis/data6382:/data -p 6382:6379 -d  redis redis-server /etc/redis/redis.conf

2.5 进入redis容器里面加入数据

[root@localhost redis]# docker run --name redis -v /root/redis/redis.conf:/usr/local/etc/redis/redis.conf -p 6379:6379 -d  redis redis-server /usr/local/etc/redis/redis.conf
10627eff630b62dde310aa91c9417632c1f43f269f1067d5f1b8fa9cf82e1833
[root@localhost redis]# docker exec -it redis bash
root@10627eff630b:/data# redis-cli
127.0.0.1:6379> set name 123
OK
127.0.0.1:6379> 

2.6 可视化工具连接redis查看数据


连接成功之后查看到了数据

2.7 将数据目录挂载到本地保证数据安全

docker run --name redis -v /root/redis/data:/data -v /root/redis/redis.conf:/usr/local/etc/redis/redis.conf -p 6379:6379 -d redis redis-server /usr/local/etc/redis/redis.conf

3 nginx

3.1 拉取nginx

docker pull nginx

[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
d121f8d1c412: Already exists
ebd81fc8c071: Pull complete
655316c160af: Pull complete
d15953c0e0f8: Pull complete
2ee525c5c3cc: Pull complete
Digest: sha256:c628b67d21744fce822d22fdcc0389f6bd763daac23a6b77147d0712ea7102d0
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

3.2 启动nginx容器

docker run -p 80:80 -d --name nginx01 nginx

3.3 进入nginx

docker exec -it nginx01 /bin/bash

3.4 查看nginx配置文件路径

root@24767f7b3e0a:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx/usr/sbin/nginx    #执行命令路径
/usr/lib/nginx      #依赖库路径
/etc/nginx          #配置文件路径
/usr/share/nginx    #静态文件路径

3.5 复制配置文件到宿主机

docker cp nginx01(容器id|容器名称):/etc/nginx/nginx.conf .
[root@localhost ~]# docker cp nginx01:/etc/nginx/nginx.conf .
[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 1241 8月  31 09:03 anaconda-ks.cfg
drwxr-xr-x. 4 root root   32 9月  25 21:59 mysql
-rw-r--r--. 1 root root  643 8月  11 22:50 nginx.conf
drwxr-xr-x. 3 root root   36 9月  26 15:52 redis
[root@localhost ~]# nkdir nginx
-bash: nkdir: 未找到命令
[root@localhost ~]# mkdir nginx
[root@localhost ~]# mv nginx.conf /root/nginx/
[root@localhost ~]# cd nginx/
[root@localhost nginx]# ll
总用量 4
-rw-r--r--. 1 root root 643 8月  11 22:50 nginx.conf

3.6 挂载nginx配置以及html到宿主机外部

docker run -p 80:80 --name nginx01 -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx:/usr/share/nginx/html -d nginx

这时文件路径已经映射了,但是/nginx下没有内容所有报错了

在/nginx下新建index.html后就可以了

[root@localhost ~]# cd nginx/
[root@localhost nginx]# ll
总用量 4
-rw-r--r--. 1 root root 643 8月  11 22:50 nginx.conf
[root@localhost nginx]# ls
nginx.conf
[root@localhost nginx]# touch index.html
[root@localhost nginx]# vim index.html 

3.7 负载均衡配置

upstream myserver{server 127.0.0.1:1111; # 代理的 ip:端口号server 127.0.0.1:2222;
}server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {# 负责用到的配置proxy_pass  http://myserver;root   html;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}

4 tomcat

4.1 拉取tomcat

docker pull tomcat

4.2 启动tomcat

注意:拉取的tomcat的webapps下是没有页面的

docker run -p 8080:8080 -d --name tomcat01 tomcat

所以当启动tomcat的时候是没有汤姆猫的

docker官方把资源放在了webapps.dist里面,如果要出现汤姆猫就要把webapps.dist里面的文件移动或者复制到webapps下

root@cb8d4c82b008:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
root@cb8d4c82b008:/usr/local/tomcat# cd webapps
root@cb8d4c82b008:/usr/local/tomcat/webapps# ls
root@cb8d4c82b008:/usr/local/tomcat/webapps# cp -r ../webapps.dist/* ./
root@cb8d4c82b008:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager

再次访问成功了!

4.3 将webapps目录挂载在外部

之后只要把项目放在/root/webapps/下就可以了,这样就不用进入tomcat了

docker run -d -p 8080:8080 --name tomcat01 -v /root/webapps/:/usr/local/tomcat/webapps tomcat

5 RabbitMQ

5.1 拉取镜像

docker pull rabbitmq

5.2 运行

docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v /root/rabbitmq:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost  -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin 747

-d 以后台运行
– name rabbitmq 容器名称
-p -p 5672:5672 -p 15672:15672 映射端口
-v 映射目录(/root/rabbitmq为宿主机的目录::/var/lib/rabbitmq为容器中的目录)
–hostname 主机名
-e 指定环境变量;(
RABBITMQ_DEFAULT_VHOST:默认虚拟机名;
RABBITMQ_DEFAULT_USER:默认的用户名;
RABBITMQ_DEFAULT_PASS:默认用户名的密码

5.2 防火墙开放两个端口或关闭防火墙

5.3 启动容器

docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management

5.4 访问http:ip:15672

6 fastdfs

1.获取镜像

docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=xxx.xx.218.27 -e WEB_PORT=80 -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs

2.测试上传

#进入容器
docker exec -it fastdfs /bin/bash
/#创建文件
echo "Hello FastDFS!">index.html
#测试文件上传
fdfs_test /etc/fdfs/client.conf upload index.html

开放端口(如果是服务器还要开放安全组的端口)

# 浏览器访问端口
firewall-cmd --zone=public  --permanent --add-port=8888/tcp
# tracker端口
firewall-cmd --zone=public  --permanent --add-port=22122/tcp
# storage端口
firewall-cmd --zone=public  --permanent --add-port=23000/tcp
# 重启防火墙
systemctl restart firewalld

7 kafka

7.1 安装zookeeper

docker run -d --name zookeeper \
–publish 2181:2181 \
-v /root/zookeeper/conf:/conf \
-v /root/zookeeper/data:/data \
-v /root/zookeeper/datalog:/datalog \
–restart=always \
–volume /etc/localtime:/etc/localtime wurstmeister/zookeeper

7.2 安装kafka

docker run -d --name kafka -p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=<这里换成你的zookeeper地址和端口> \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://<这里换成你的kafka地址和端口> \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e TZ=“Asia/Shanghai” wurstmeister/kafka

-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT/kafka 配置zookeeper管理kafka的路径
-e KAFKA_ADVERTISED_LISTENERS 把kafka的地址端口注册给zookeeper
-e KAFKA_LISTENERS= 配置kafka的监听端口

7.3 kafka-manager 图形管理

  1. 拉取镜像
docker pull sheepkiller/kafka-manager
  1. 创建容器
docker run -d --name kfk-manager \
--restart always \
-p 9000:9000 \
-e ZK_HOSTS=<这里换成你的zookeeper地址和端口> sheepkiller/kafka-manager
  1. 访问地址: <你的manager运行地址>:9000

8 mongo

8.1 拉取mongo镜像

docker pull mongo

8.2 创建容器运行mongo

-p 端口映射(为了安全修改了访问的端口)
–auth 表示连接mongodb需要授权

docker run --name mongodb -p 27016:27017 -d mongo --auth

8.3 进入mongo

docker exec -it 69bc mongo admin

8.4 创建管理员账号

db.createUser({ user: ‘admin’, pwd: ‘admin’, roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ] });

8.5 退出后再次进入容器进行认证

db.auth(“admin”,“admin”)

8.6 创建一个普通用户,user库

db.createUser({ user: ‘czn’, pwd: ‘123456’, roles: [ { role: “readWrite”, db: “user” } ] });

8.7再次退出用普通用户登录

db.auth(“czn”,“123456”)

8.8 使用user数据库

use user

8.9 在test表中添加一天数据

db.test.save({name:“czn”});

9 elasticsearch

#拉取镜像
docker pull elasticsearch:7.5.0
#启动镜像
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.5.0
  • –name表示镜像启动后的容器名称
  • -d: 后台运行容器,并返回容器ID;
  • -e: 指定容器内的环境变量
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

9.1 访问

ip:9200

10 hadoop 单机

10.1 拉取镜像

docker pull sequenceiq/hadoop-docker

10.2 创建容器运行

docker run -it -p 50070:50070 -p 9000:9000 -p 8088:8088 -p 8040:8040 -p 8042:8042  -p 49707:49707  -p 50010:50010  -p 50075:50075  -p 50090:50090 sequenceiq/hadoop-docker /etc/bootstrap.sh -bash

10.3 访问地址

http://ip:50070

docker 安装 mysql ,redis ,nginx,tomcat,rabbitmq,fastdfs,kafka,mongo,elasticsearch相关推荐

  1. vagrant 安装centos7后,安装 docker, mysql redis nginx 开发环境

    1.安装VirtualBox https://www.virtualbox.org/ 直接下载安装 2.安装Vagrant https://www.vagrantup.com/downloads.ht ...

  2. 2022全新docker安装mysql镜像、tomcat镜像及打包IDEA项目为war包并部署到docker上成功运行

    Docker部署web项目 一.推荐提前准备的软件 1.IDEA2022 2.xshell7 3.xftp7 4.Navicat Premium 15 二.docker上安装mysql 1.先从网上拉 ...

  3. Docker安装Mysql 案例和Tomcat测试

    1.先pull一下mysql docker pull mysql docker run --name mysql001 -e MYSQL_ROOT_PASSWORD -d -p 3307:3306 m ...

  4. Docker 安装 Mysql , Redis,ElasticSearch,Kibana,RabbitMQ,Zipkin,Nacos,Minio Docker服务器环境搭建

  5. Linux下搭建rabbitMQ、安装jdk、安装redis、安装zookeeper、docker安装MySQL、防火墙常用命令、docker安装、Windows下嘛呢私服搭建、Nginx安装

    rabbitMQ 1. 搭建Elang环境 1)安装GCC GCC-C++ Openssl等模块,安装过就不需要安装了 yum -y install make gcc gcc-c++ kernel-d ...

  6. Linux 安装 docker,使用docker 安装mysql、redis、jdk、nginx

    1.安装docker 这里使用的是阿里云的CentOS 操作系统 废话不多说,直接安装 1.1.首先安装一些必要的工具 sudo yum install -y yum-utils device-map ...

  7. docker安装mysql redis_Docker安装Mysql和Redis以及构建部署应用镜像

    为了方便本地测试项目,为了方便开启新的环境,为了方便部署,打算本地利用Docker安装Mysql和Redis. 搭建Springboot项目,编写Dockerfile,打包构建镜像. 简单使用dock ...

  8. Docker + redis + nginx + tomcat

    Docker + redis + nginx + tomcat 环境 pc机 机器 192.168.1.242 系统 [root@hdp-gp-dk02 ~]# uname -a Linux hdp- ...

  9. vagrant给vmbox创建虚拟机及docker安装mysql和redis

    一.安装vmbox和vagrant 1.下载地址 Vagrant: https://releases.hashicorp.com/vagrant/2.2.5/vagrant_2.2.5_x86_64. ...

  10. docker 安装 mysql 并映射数据库存放路径及配置文件

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

最新文章

  1. 关于text段、data段和bss段
  2. java jdbc datetime_Java JDBC 操作二进制数据、日期时间
  3. Windows下创建动态库
  4. prod和probor在matlab,基本FIS编辑器(MATLAB模糊逻辑工具箱函数)
  5. PDF搜索、转换与处理类网站
  6. 页面事务处理 ContextUtil.SetComplete(); 没有 MTS 对象上下文
  7. linux内核c1bcbc40,【资料共享】给学习linux内核的大餐
  8. CCNA实验(9) -- Frame Relay
  9. 网络知识:交换机中的半双工与全双工知识笔记
  10. Linux内核概念:per-CPU,cpumask,inicall机制,通知链
  11. mysql5.6主从复制与基于amoeba实现读写分离
  12. 实现滑动分页(微博分页方式)
  13. linux常用命令大全,入门基础版
  14. opendrive map with UE4
  15. Java基础1-环境篇:JDK安装与环境变量配置
  16. 使用ceph-deploycep集群部署,并用3个磁盘作为专用osd
  17. Mybatis 新增返回ID
  18. 研究人员发现英特尔芯片组中可能被黑客使用的“新功能”VISA
  19. MySQL事物和事物回滚
  20. 电商常识图谱构建及搜索推荐场景下的应用

热门文章

  1. 一个故事告诉你,压力真的可以击垮一个人
  2. SSL协议与Nginx安装SSL模块和ssl证书
  3. Linux操作系统笔记(基本命令+环境安装项目部署+Shell编程)
  4. layer.js 贤心制作的弹出层插件-不仅仅是弹层
  5. c语言实现十进制转换其他进制的代码
  6. DHCP实现跨网段自动分配IP地址
  7. 关于win7快速启动栏以及显示桌面功能的还原
  8. 【5GC】三种SSC(Session and Service Continuity)模式介绍
  9. 【论文导读】Continuity Scaling: A Rigorous Framework for Detecting andQuantifying Causality Accurately
  10. java自学笔记(4)-Stanford CS106A 弹球动画 20.9.9