一、部署MySQL8.0.21
1、创建mysql数据目录
mkdir /data/docker/mysql/mysql_data
2、拉取mysql镜像
docker pull mysql:8.0.21
3、创建mysql容器
docker run -itd --name mysql \-p 3306:3306 \-v /data/docker/mysql/mysql_data/:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=123456 镜像ID
- -p:将容器中的端口映射到宿主机
- -v:持久化容器中的路径到宿主机,前面是宿主机目录,后面是容器路径(数据比较重要的服务必须做持久化,否则重启容器数据将丢失)
- -e:环境变量,写入mysql的密码
二、构建一个jar包镜像
1、编写Dockerfile构建镜像(Dockerfile文件名D必须大写)
FROM openjdk:8-jdk-alpineWORKDIR appADD gismanagement-service-1.0.0.jar /app/gismanagement-service-1.0.0.jarEXPOSE 8291CMD java -Dfile.encoding=utf-8 -jar /app/gismanagement-service-1.0.0.jar
- FROM:指定创建镜像的基础镜像为openjdk:8-jdk-alpine
- WORKDIR:切换到容器中的工作目录
- ADD:将数据移动到指定目录
- EXPOSE:指定容器的监听端口号
- CMD:指定容器启动执行的命令
2、编译Dockerfile文件构建镜像
docker build -t gismanagement .
- -t:构建的镜像名称
3、运行gismanagement镜像
docker run -d -p 8291:8291 gismanagement
- -d:后台运行并返回容器ID
- -p:容器端口映射到宿主机(如无需外部访问则不需要做映射端口)
三、部署nginx1.20.1
1、拉取NGINX基础镜像
docker pull nginx:1.20.1
2、启动容器
docker run -itd --name=nginx-p 80:80-v /data/docker/nginx/html/:/usr/share/nginx/html/ 镜像ID
四、部署nacos
1、拉取nacos镜像
docker pull nacos/nacos-server
2、启动容器
docker run -d --name nacos-p 8848:8848-e PREFER_HOST_MODE=localhost-e MODE=standalone nacos/nacos-server
五、部署rabbitmq
1、拉取镜像
docker pull rabbitmq:3.8.12-management
2、启动容器
docker run -d--name=rabbitmq-p 5672:5672-p 15672:15672 rabbitmq:3.8.12-management
六、部署centos7系统
1、编写Dockerfile
FROM centos:7.8.2003ENV LANG=zh_CN.UTF-8 \LANGUAGE=zh_CN:zh \LC_ALL=zh_CN.UTF-8RUN yum update -y && \yum reinstall -y glibc-common && \yum install -y telnet net-tools && \yum clean all && \rm -rf /tmp/* rm -rf /var/cache/yum/* && \localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 && \ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeCMD ["bash"]
2、构建镜像并启动容器
#构建镜像docker build -t centos7 .#启动容器docker run -d--privileged=true--cap-add SYS_ADMIN-e container=docker -it-p 30022:22-p 30080:80-h "bigdata"--name=centos7_base centos7.8:latest /usr/sbin/init
- —privileged:指定容器是否为特权容器,特权容器拥有所有的capabilities
- —cap-add:添加权限(http://linux.die.net/man/7/capabilities)
- -e:容器环境变量
- -h:指定容器主机名
七、部署elasticsearch+head+kibana
1、拉取镜像
docker pull elasticsearch:7.12.0docker pull docker pull mobz/elasticsearch-head:5docker pull kibana:7.12.0
2、启动容器elasticsearch
docker run -d --name=es-p 9200:9200-p 9300:9300-e "discovery.type=single-node"elasticsearch:7.12.0
3、配置跨域
docker exec -it es /bin/bashvi config/elasticsearch.ymlhttp.cors.enabled: truehttp.cors.allow-origin: "*"#重启容器docker restart es
4、启动容器elasticsearch-head
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
5、启动kibana
查看es在容器中的地址
docker inspect es

启动kibana容器
docker run -d --name=kibana -p 5601:5601 kibana:7.12.0
修改kibana配置文件 ```shell docker exec -it kibana /bin/bash vi config/kibana.yml server.name: kibana server.host: “0” elasticsearch.hosts: [ “http://172.17.0.6:9200“ ] #ip为上面查出来es的容器ip monitoring.ui.container.elasticsearch.enabled: true
重启kibana容器
docker restart kibana
<a name="Sdi9B"></a>### 八、部署minio**1、拉取镜像**```shelldocker pull minio/minio
2、启动容器
docker run -itd--name=minio-server-p 9000:9000-p 9001:9001-e "MINIO_ROOT_USER=minioadmin"-e "MINIO_ROOT_PASSWORD=minioadmin"-v /data/minio/data/:/data-v /data/minio/config/:/root/.minio镜像ID server /data--console-address ":9001"--address ":9000"
