1. FROM centos:centos7
  2. RUN ["yum", "install", "-y", "vim"]
  3. # 仅仅声明该服务使用的端口
  4. EXPOSE 8081
  5. ENV BASE_PATH=/apps/data
  6. WORKDIR $BASE_PATH
  7. ADD test.txt .
  8. ADD apache-tomcat-10.0.16.tar.gz .
  9. RUN mv apache-tomcat-10.0.16 tomcat-10.0.16
  10. WORKDIR tomcat-10.0.16
  11. COPY test.txt .
  12. WORKDIR $BASE_PATH
  13. # 仅仅声明,告诉使用者容器可以挂载这个目录到宿主机中
  14. VOLUME $BASE_PATH
  15. ENTRYPOINT ["ls"]
  16. CMD ["/apps/data"]

CMD 和 ENTRYPOINT

  1. CMD 和 ENTRYPOINT作用

作用:都用来指定容器启动时默认执行命令
注意:CMD指令可以存在多个,但是存在多个只有最后一个生效

  1. 使用语法

1)直接使用命令

java -jar xxx.jar

2)json数组方式

[“java”, “-jar”, “xxx.jar”]

  1. 区别是什么

1)当容器使用CMD命令,运行容器时覆盖命令的方式
docker run 镜像:版本号 覆盖自定义命令 ls /

docker run mycentos:05 ls /

2)entrypoint里面命令如何在运行容器时进行覆盖
docker run —entrypoint=覆盖命令 镜像:版本号 传递参数

docker run —entrypoint=ls mycentos:03 /

  1. 如何使用

docker-compose

  1. # 代表使用docker-compose项目的版本号,版本选择和docker引擎相关,详情:https://docs.docker.com/compose/compose-file/compose-file-v3/
  2. version: "3.8"
  3. services:
  4. mytomcat01:
  5. image: tomcat:8.0.53
  6. ports:
  7. - 8080:8080
  8. mytomcat02:
  9. image: tomcat:8.0.53
  10. ports:
  11. - 8081:8080
  12. myredis01:
  13. image: redis:6.2.2
  14. ports:
  15. - "6379:6379"
  16. mysql:
  17. image: mysql:5.6
  18. ports:
  19. - "3306:3306"
  20. environment:
  21. #- MYSQL_ROOT_PASSWORD: root
  22. - "MYSQL_ROOT_PASSWORD=root"
  23. volumes:
  24. #- /root/mysqldata1:/var/lib/mysql
  25. - mysqlData:/var/lib/mysql
  26. volumes:
  27. mysqlData: #生命数据卷别名

https://yeasy.gitbook.io/docker_practice/