1. 下载docker
yum install docker
2. 启动docker
systemctl start docker
systemctl enable docker
3. 设置docker远程镜像仓库地址
编辑/etc/docker/daemon.json文件,配置为阿里云里面的仓库地址,方便拉镜像;
4. 查看是否安装运行成功
docker --version
5. 基本docker命令:
- 拉取镜像:docker pull 镜像名:版本号
- 查看镜像:docker images
- 删除镜像:docker rmi -f 镜像id
- 创建网络:docker network create 网络名
- 创建并启动容器:docker run --name 容器名 --network 网络名 -p 端口映射 -d 镜像名:版本
- 查看容器: docker ps (-a/-q)
- 进入容器:docker exec -it 容器id bash
- 停止容器:docker stop 容器id
- 启动容器:docker start 容器id
- 重启容器:docker restart 容器id
- 删除容器:docker rm -f 容器id
- 查看容器日志:docker logs 容器id
- 导出镜像:docker save -o /路径/包名.tar 镜像名:tag
- 导入镜像:docker load -i /路径/包名.tar
6. nacos和redis等基础服务镜像
nacos和redis的镜像从外网pull下来,使用docker save 导出,拷到内网后,用docker load导入;
6.1 创建并启动nacos:
docker -run --name nacos --network 网络名 -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:latest
6.2. 创建并启动redis:
docker -run --name redis --network 网络名 -p 6379:6379 -d redis:latest
7. 自定义镜像:
7.1 修改配置文件
在打自定义镜像前需要把所有服务的配置文件中redis和nacos的ip由10.21.1.xxx改为容器名,所有调用其他服务的ip也均改为对应的容器名;
7.2 Dockerfile
7.2.1 account-service项目的Dockerfile:
# 使用官方的CentOS 7镜像
FROM docker.io/centos:7
# 安装Java 8
RUN yum install -y java-1.8.0-openjdk
# 设置Java环境变量
ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
ENV PATH=$PATH:$JAVA_HOME/bin
# 创建一个工作目录
WORKDIR /app
# 将本地文件复制到镜像中
COPY /account-service-1.0-SNAPSHOT.jar /app/account-service-1.0-SNAPSHOT.jar
COPY /application.yml /app/application.yml
# 暴露容器的端口
EXPOSE 8308
CMD ["java","-jar","account-service-1.0-SNAPSHOT.jar","--spring.config.location=application.yml",">>","account-service.log","&"]
7.2.2 仿真推演项目的Dockerfile:
# 使用官方的CentOS 7镜像
FROM docker.io/centos:7
# 安装Java 8
RUN yum install -y java-1.8.0-openjdk
# 设置Java环境变量
ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
ENV PATH=$PATH:$JAVA_HOME/bin
# 创建一个工作目录
WORKDIR /app
# 创建文件夹
RUN mkdir -p /app/share/UEData
# 设置文件夹所有者和权限
RUN chown -R 1000:1000 /app/share/UEData
RUN chmod -R 755 /app/share/UEData
#资源文件复制到uploadPath
COPY /static . /app/
# 将本地文件复制到镜像中
COPY /Simulation-Deduction-0.0.1-SNAPSHOT.jar /app/Simulation-Deduction-0.0.1-SNAPSHOT.jar
COPY /application.yml /app/application.yml
# 暴露容器的端口
EXPOSE 8305
CMD ["java","-jar","Simulation-Deduction-0.0.1-SNAPSHOT.jar","--spring.config.location=application.yml",">>","Simulation-Deduction.log","&"]
7.2.3 socket-service、webInformation、worker、基础算法、模型库的Dockerfile类似,只需要根据需要修改:RUN创建文件夹、COPY复制的本地文件、EXPOSE 暴露端口、CMD等部分;
7.3 build镜像
docker build -t 镜像名:tag .