1、基础概念
- Docker 镜像
镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。 - docker 容器
容器是独立运行的一个或一组应用,及他们的运行环境,即为镜像运行时的实体。镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是类的定义文件,容器是类运行时的实例对象。 - Repository 仓库
Docker用Registry保存用户构建的镜像,Registry 分为公共和私有两种。一个 Docker Registry中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
2、操作docker容器
1>、查看容器
语法:
docker ps [OPTIONS]
具体参数:
用法实例:
2>、创建容器
语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
参数:
注:下面截图不完整,可以通过命令直接查看所有可选参数。
用法实例:
3>、docker的启动、停止、重启、删除
- 启动:
docker start [OPTIONS] CONTAINER [CONTAINER...]
注:当启动时,如果出现下面报错: docker: Error response from daemon: driver failed programming external connectivity on endpoint ubuntu1 (bbcd24ed3ec715b4e0fcb0012c9ec469f603ddaf91a9b1bb1af0c217d7393175): Error starting userland proxy: /forwards/expose/port returned unexpected status: 50。这是windows下 docker 没有完全清理环境导致的, 需要重启电脑来解决。
- 重启:
docker restart [OPTIONS] CONTAINER [CONTAINER...]
- 停止:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
- 删除:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
注:如果移除正在运行的容器,需要带上-f参数。快速删除全部容器:docker rm $(docker ps -aq)
3、操作docker镜像
1>、镜像列表
- 语法:
docker images [OPTIONS] [REPOSITORY[:TAG]]
- 参数:
- 用法实例:
2>、检索镜像
查询仓库中的镜像。
- 语法
docker search [OPTIONS] TERM
- 参数
- 实例
查看Docker Hub中所有和tomcat相关的镜像。其中第一个是官方tomcat。
3>、下载镜像
- 语法
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
- 参数
- 实例
其中registry.cn-hangzhou.aliyuncs.com/hnzwdz/test是仓库对应的地址(阿里云的镜像仓库,共有类型),tomcat-admin1对应的是镜像版本号
4>、移除镜像
- 语法
docker rmi [OPTIONS] IMAGE [IMAGE...]
- 参数
- 实例
5>、通过容器创建镜像
- 语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
- 参数
- 实例
注:在windows环境下,几遍添加了-p的参数,也不允许根据正在运行的容器创建镜像。
6>、推送镜像到Registry
- 登录
登录Registry。
- 重命名
- 推送镜像到Registry
注:其中对应的name应该和重命名中定义的名字一样。
-
语法
-
用法实例
-
结果
当上面的命令执行结束后,可以在阿里的镜像库中看见上传的镜像,如下图所示。
4、所有命令