一、部署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-alpine
WORKDIR app
ADD gismanagement-service-1.0.0.jar /app/gismanagement-service-1.0.0.jar
EXPOSE 8291
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文件构建镜像
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.2003
ENV LANG=zh_CN.UTF-8 \
LANGUAGE=zh_CN:zh \
LC_ALL=zh_CN.UTF-8
RUN 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/localtime
CMD ["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.0
docker pull docker pull mobz/elasticsearch-head:5
docker 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/bash
vi config/elasticsearch.yml
http.cors.enabled: true
http.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、拉取镜像**
```shell
docker 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"