系列文章目录
第一章:docker运行基础服务的搭建---个人记录
目录
拉取镜像名称版本可前往Docker Hub查询
一、mysql
以下是使用docker创建一个简单的mysql容器。
需要保证本地有D:\dockerLinkSpace\mysql8.0\data文件夹,可根据自己需要修改
- -p 3306:3306 本地端口:容器端口
- --privileged=true container内的root拥有真正的root权限,可以更多host上的设备,并且可以执行mount
- --restart=always 当 Docker 重启时,容器未能自动启动,加上该参数可自行重启
- -v=D:\dockerLinkSpace\mysql8.0\data:/var/lib/mysql 挂载目录,本地路径:容器内路径,内容是存储在本地的
- -d mysql:8 镜像名称:版本
- --name mysql8 容器名称
- -e MYSQL_ROOT_PASSWORD="root123" 传递环境变量
#拉取镜像
docker pull mysql:8
#生成容器
docker run -d -p 3306:3306 --name mysql8 --privileged=true --restart=always -e MYSQL_ROOT_PASSWORD="root123" -v=D:\dockerLinkSpace\mysql8.0\data:/var/lib/mysql -d mysql:8
注意:本段命令没有对mysql的my.cnf 文件进行挂载,如需挂载my.cnf ,可以自己去官网下载一个,也可以先安装,然后找到容器的目录(/etc/mysql),将文件夹下的所有内容copy下来,再删除容器,然后使用-v参数进行挂载目录(/etc/mysql)。具体操作参考tomcat的操作
#查看容器状态
docker ps
#进入容器命令
docker exec -it 容器名称 /bin/bash
二、tomcat
#拉取镜像
docker pull tomcat:8.5.73-jdk8-temurin-focal
#因需要挂载目录,则要把该版本的bin、conf、webapp等目录先复制出来,具体哪些目录根据自己需要
#本地新建文件夹 D:\dockerLinkSpace\tomcat8
#先创建一个容器
docker run -d -it -p 8099:8080 --name tomcat8 --privileged=true -d tomcat:8.5.73-jdk8-temurin-focal
#查看容器状态
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
14103b4018f6 tomcat:8.5.73-jdk8-temurin-focal "catalina.sh run" 11 minutes ago Up 11 minutes 0.0.0.0:8099->8080/tcp tomcat8
#复制bin目录出来
docker cp 14103b4018f6:/usr/local/tomcat/bin D:\dockerLinkSpace\tomcat8\bin
#复制log目录出来
docker cp 14103b4018f6:/usr/local/tomcat/logs D:\dockerLinkSpace\tomcat8\logs
#复制webapps目录出来
docker cp 14103b4018f6:/usr/local/tomcat/webapps D:\dockerLinkSpace\tomcat8\webapps
#复制conf目录出来
docker cp 14103b4018f6:/usr/local/tomcat/conf D:\dockerLinkSpace\tomcat8\conf
#停止容器
docker stop 14103b4018f6
#删除容器
docker rm -v 14103b4018f6
#生成容器
docker run -d -it -p 8099:8080 --name tomcat8 --privileged=true -v=D:\dockerLinkSpace\tomcat8\bin:/usr/local/tomcat/bin -v=D:\dockerLinkSpace\tomcat8\conf:/usr/local/tomcat/conf -v=D:\dockerLinkSpace\tomcat8\logs:/usr/local/tomcat/logs -v=D:\dockerLinkSpace\tomcat8\webapps:/usr/local/tomcat/webapps -d tomcat:8.5.73-jdk8-temurin-focal
#如果需要立即看到效果,可将webapps.dist移入webapps中
#进入容器
docker exec -it tomcat8 /bin/bash
#复制tomcat默认的文件夹
cp -Rf webapps.dist/* webapps
做完最后一步就可以访问 http://localhost:8099/ 打开tomcat默认界面了,另外可以通过修改本地目录的D:\dockerLinkSpace\tomcat8\下的tomcat配置,然后使用docker restart tomcat8来对服务进行重启。
三、rabbitmq
参数:
- -d 后台运行
- -p 端口 5672,15672
- -v 需要创建文件夹:D:\dockerLinkSpace\rabbitMQ3.9.11\data
- --hostname:主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名)
- -e 设置环境变量:
- RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin【账号密码】,
- RABBITMQ_DEFAULT_VHOST=my_vhost【默认虚拟机名】
- 线上部署建议加这两个参数 --privileged=true --restart=always(随docker启动)
#拉取镜像,management 有web界面
docker pull rabbitmq:3.9.11-management
docker run -d --name rabbitmq3.9.11 -p 5672:5672 -p 15672:15672 -v=D:\dockerLinkSpace\rabbitMQ3.9.11\data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -d rabbitmq:3.9.11-management
运行完成之后即可在浏览器访问http://localhost:15672。
四、elasticsearch
准备工作:
- 创建文件夹:D:\dockerLinkSpace\elasticsearch\config
- 创建文件夹:D:\dockerLinkSpace\elasticsearch\data
- 创建文件夹:D:\dockerLinkSpace\elasticsearch\plugins
- 创建文件夹:D:\dockerLinkSpace\elasticsearch\logs
- 创建文件:D:\dockerLinkSpace\elasticsearch\config\elasticsearch.yml
elasticsearch.yml文件内容为:http.host: 0.0.0.0
#基础配置
http.host: 0.0.0.0
#开启本地用户,开启x-pack插件
#xpack.security.enabled: true
#xpack的版本
#xpack.license.self_generated.type: basic
#上面开启用户需要进入容器内部配置账号密码
#配置请参考http://t.zoukankan.com/chenmu-p-12680739.html的配置
- -p 端口映射
- -e discovery.type=single-node 单点模式启动
- -e ES_JAVA_OPTS="-Xms84m -Xmx512m":设置启动占用的内存范围
- -v 目录挂载
- -d 后台运行
- -it 以交互模式运行容器 | 为容器重新分配一个伪输入终端
- 线上部署建议加这两个参数 --privileged=true --restart=always(随docker启动)
#拉取镜像,management 有web界面
docker pull elasticsearch:7.12.0
#sudo docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
# -e "discovery.type=single-node" \
# -e ES_JAVA_OPTS="-Xms84m -Xmx512m" \
# -v D:\dockerLinkSpace\elasticsearch\config\elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
# -v D:\dockerLinkSpace\elasticsearch\data:/usr/share/elasticsearch/data \
# -v D:\dockerLinkSpace\elasticsearch\plugins:/usr/share/elasticsearch/plugins \
# -v D:\dockerLinkSpace\elasticsearch\logs:/usr/share/elasticsearch/logs \
# elasticsearch:7.12.0
docker run -d -it --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx512m" -v D:\dockerLinkSpace\elasticsearch\config\elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v D:\dockerLinkSpace\elasticsearch\data:/usr/share/elasticsearch/data -v D:\dockerLinkSpace\elasticsearch\plugins:/usr/share/elasticsearch/plugins -v D:\dockerLinkSpace\elasticsearch\logs:/usr/share/elasticsearch/logs elasticsearch:7.12.0
查看启动详情
docker ps 查看是否启动
docker logs elasticsearch 启动日志查询
docker restart elasticsearch 重启
docker exec -it elasticsearch bash 进入
#安装分词进入容器plugins文件夹,执行安装
$:cd plugins
$:elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.0/elasticsearch-analysis-ik-7
.12.0.zip
运行完成之后即可在浏览器访问http://localhost:9200。
如果有异常可以下面这个链接
参考:docker安装ES_胡八一 的博客-CSDN博客_docker 安装es
五、linkease/ddnsto(免费内网穿墙应用)
1.该应用作为内网穿透应用,可以将本地应用代理到外网
2.当前写的是每7天一次申请免费通道,无线申请,后续未知
进入linkease/ddnsto安装教程,点击控制台,微信扫码注册登录,进入ddnsto控制台,获取token,该应用不完全免费,但是好像可以一直获得7天免费体验。
#拉取镜像
docker pull linkease/ddnsto
#运行, TOKEN的值改为自己的token,-v的地址改为自己的本地地址
docker run -d --name=ddnsto -e TOKEN=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx -e DEVICE_IDX=99 -v=D:\dockerLinkSpace\ddnsto:/etc/localtime:ro linkease/ddnsto
运行之后进入控制台,配置域名映射,添加一个映射
等待一分钟就可以使用域名映射的地址进行访问了
总结
希望一直增加,以后方便使用