一、部署MySQL8.0.21

1、创建mysql数据目录

  1. mkdir /data/docker/mysql/mysql_data

2、拉取mysql镜像

  1. docker pull mysql:8.0.21

3、创建mysql容器

  1. docker run -itd --name mysql \
  2. -p 3306:3306 \
  3. -v /data/docker/mysql/mysql_data/:/var/lib/mysql \
  4. -e MYSQL_ROOT_PASSWORD=123456 镜像ID
  • -p:将容器中的端口映射到宿主机
  • -v:持久化容器中的路径到宿主机,前面是宿主机目录,后面是容器路径(数据比较重要的服务必须做持久化,否则重启容器数据将丢失)
  • -e:环境变量,写入mysql的密码

二、构建一个jar包镜像

1、编写Dockerfile构建镜像(Dockerfile文件名D必须大写)

  1. FROM openjdk:8-jdk-alpine
  2. WORKDIR app
  3. ADD gismanagement-service-1.0.0.jar /app/gismanagement-service-1.0.0.jar
  4. EXPOSE 8291
  5. CMD java -Dfile.encoding=utf-8 -jar /app/gismanagement-service-1.0.0.jar
  • FROM:指定创建镜像的基础镜像为openjdk:8-jdk-alpine
  • WORKDIR:切换到容器中的工作目录
  • ADD:将数据移动到指定目录
  • EXPOSE:指定容器的监听端口号
  • CMD:指定容器启动执行的命令

2、编译Dockerfile文件构建镜像

  1. docker build -t gismanagement .
  • -t:构建的镜像名称

3、运行gismanagement镜像

  1. docker run -d -p 8291:8291 gismanagement
  • -d:后台运行并返回容器ID
  • -p:容器端口映射到宿主机(如无需外部访问则不需要做映射端口)

三、部署nginx1.20.1

1、拉取NGINX基础镜像

  1. docker pull nginx1.20.1

2、启动容器

  1. docker run -itd --name=nginx
  2. -p 80:80
  3. -v /data/docker/nginx/html/:/usr/share/nginx/html/ 镜像ID

四、部署nacos

1、拉取nacos镜像

  1. docker pull nacos/nacos-server

2、启动容器

  1. docker run -d --name nacos
  2. -p 8848:8848
  3. -e PREFER_HOST_MODE=localhost
  4. -e MODE=standalone nacos/nacos-server

五、部署rabbitmq

1、拉取镜像

  1. docker pull rabbitmq:3.8.12-management

2、启动容器

  1. docker run -d
  2. --name=rabbitmq
  3. -p 5672:5672
  4. -p 15672:15672 rabbitmq:3.8.12-management

六、部署centos7系统

1、编写Dockerfile

  1. FROM centos:7.8.2003
  2. ENV LANG=zh_CN.UTF-8 \
  3. LANGUAGE=zh_CN:zh \
  4. LC_ALL=zh_CN.UTF-8
  5. RUN yum update -y && \
  6. yum reinstall -y glibc-common && \
  7. yum install -y telnet net-tools && \
  8. yum clean all && \
  9. rm -rf /tmp/* rm -rf /var/cache/yum/* && \
  10. localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 && \
  11. ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  12. CMD ["bash"]

2、构建镜像并启动容器

  1. #构建镜像
  2. docker build -t centos7 .
  3. #启动容器
  4. docker run -d
  5. --privileged=true
  6. --cap-add SYS_ADMIN
  7. -e container=docker -it
  8. -p 30022:22
  9. -p 30080:80
  10. -h "bigdata"
  11. --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、拉取镜像

  1. docker pull elasticsearch7.12.0
  2. docker pull docker pull mobz/elasticsearch-head:5
  3. docker pull kibana:7.12.0

2、启动容器elasticsearch

  1. docker run -d --name=es
  2. -p 9200:9200
  3. -p 9300:9300
  4. -e "discovery.type=single-node"
  5. elasticsearch:7.12.0

3、配置跨域

  1. docker exec -it es /bin/bash
  2. vi config/elasticsearch.yml
  3. http.cors.enabled: true
  4. http.cors.allow-origin: "*"
  5. #重启容器
  6. docker restart es

4、启动容器elasticsearch-head

  1. docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5

5、启动kibana

  1. 查看es在容器中的地址

    1. docker inspect es

    image.png

  2. 启动kibana容器

    1. docker run -d --name=kibana -p 5601:5601 kibana:7.12.0
  3. 修改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

  1. <a name="Sdi9B"></a>
  2. ### 八、部署minio
  3. **1、拉取镜像**
  4. ```shell
  5. docker pull minio/minio

2、启动容器

  1. docker run -itd
  2. --name=minio-server
  3. -p 9000:9000
  4. -p 9001:9001
  5. -e "MINIO_ROOT_USER=minioadmin"
  6. -e "MINIO_ROOT_PASSWORD=minioadmin"
  7. -v /data/minio/data/:/data
  8. -v /data/minio/config/:/root/.minio
  9. 镜像ID server /data
  10. --console-address ":9001"
  11. --address ":9000"