- 第一种,IDEA 中生成 docker image
win10 下 启动 docker-desktop,并在setting 中 勾选
即可连接docker-desktop 从而进行镜像的设置
可以进行docker build
第二种:命令行 生成docker image
在本地Dockerfile 所在的pwd下 运行Powershell
此时 docker build -t [image_name]:latest 即可通过dockerfile 生成image
第三种方式:利用docker-compose 一键生成image
二## 标题 docker-compose 介绍
Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
docker 与 compose version 的兼容性
想要了解更多的docker-compose 中的信息和知识 :docker 官网链接 基本都有https://docs.docker.com/compose/reference/
说一些基本常用的把:
build-> 通过dockerfile手动构建镜像
image-> 从镜像源仓库pull到本地(无build 操作)
image->(包含build操作)对通过dockerfile生成的image 做信息标签(image_name:version)
ports->对外暴露的端口
environment->添加环境变量
privileged->赋予sudo权限
volumes->挂载,可以设置宿主机路径 (HOST:CONTAINER) 或加上访问模式 (HOST:CONTAINER:ro),挂载数据卷的默认权限是读写(rw),可以通过ro指定为只读
container_name->自定义的容器name
command->覆盖容器启动后默认执行的命令
networks->采用的网络模式
depends_on->在依赖的容器启动后,才可以进行启动。。可以当作容器启动顺序控制
links->软连接,让容器之间通信。比如,启动java项目需要连接mysql,而Mysql容器在每次启动时的ip是不固定的,可以用dbHost来指代mysql的Ip地址
eg:
这样才每次容器重新启动的时候不需要关心Mysql的ip,用dbHost作为软连接即可
env_file->多个环境变量,可以用env_file来生成自定义的多个env,方便简单,可以直接对config.yml 里面的配置进行sed 替换,方便快捷