Docker
原理概念
docker中有三个重要概念:
- 镜像 image
- 容器 container
- 仓库
其中初学者对前两者之间容易混淆。
镜像与仓库的区别
官方文档中的解释:
A container is launched by running an image.
An image is an executable package that includes everything needed to run an application–the code, a runtime, libraries, environment variables, and configuration files.
A container is a runtime instance of an image–what the image becomes in memory when executed (that is, an image with state, or a user process). You can see a list of your running containers with the command, docker ps, just as you would in Linux.
看资料时的零星记录:
- image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。
- container中加载image,container则是images运行时的的状态,image被某个container拿来引用
- 删除image,要先rm该image对应的container,再rmi该image
- 我的本地主机就是docker的宿主机
Docker compose
原理概念
- Docker compose是一个用来定义和运行复杂应用的Docker工具,一个使用Docker容器的应用通常由多个容器组成。
- 使用Docker Compose就不再需要使用shell脚本来启动容器。
- Docker compose的配置文件(.yml)文件中定义了所有的容器,然后使用docker-compose脚本来启动,停止和重启这些应用、应用中的服务以及所有依赖服务的容器。
具体使用
- 编写dockerfile定义App的环境
- 编写docker-compose.yml文件定义服务service
一个service对应了一个容器
- 使用
docker-compose up
命令来启动app
nvidia-docker-compose run --rm 服务名 bash
(相比于nvidia-docker,更推荐使用nvidia-docker-compose,可以文件实时更新)
问题记录
问题 | 解答 | 添加 |
打docker是什么意思? | ||
使用docker的流程是? | dockerfile .yml配置 docker-compose run指令 | |
docker、镜像的概念区别?是进入到一个docker、一个镜像还是一个容器? | ||