Docker 入门教程(2)——image与container
image镜像
Definition of: image
Docker images are the basis of containers. An Image is an ordered collection of root filesystem changes and the corresponding execution parameters for use within a container runtime. An image typically contains a union of layered filesystems stacked on top of each other. An image does not have state and it never changes
引用docker官网的定义,大意是:
docker images是container的基础。镜像定义了容器运行所需要的文件和参数。镜像没有状态也不会改变。
下载镜像
<!--tag表示版本-->
docker pull 镜像名:tag
查看镜像
docker iamges
删除镜像
<!-- -f强制删除-->
docker image rm -f 镜像id或者镜像名:tag
container容器
Definition of: container
A container is a runtime instance of a docker image.
A Docker container consists of
- A Docker image
- An execution environment
- A standard set of instructions
The concept is borrowed from Shipping Containers, which define a standard to ship goods globally. Docker defines a standard to ship software.
引用docker官网的定义,大意是:
容器是镜像的一个运行实例。由镜像、运行环境、指令集组成。
ps:镜像和容器的关系,就像类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。一个镜像可以启动多个容器,启动一次镜像就是创建一个容器,每个容器都是一个隔离环境,不会相互影响。
基于镜像新建一个容器并启动
docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像id或镜像名:TAG
# --name 指定容器名,可自定义,不指定自动命名
# -i 以交互模式运行容器
# -t 分配一个伪终端,即命令行,通常与-i组合来使用
# -p 指定映射端口,将主机端口映射到容器内的端口
# -d 后台运行容器
# -v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读
查看容器
docker ps -a -q
docker container ls -a -q
# -a 查看所有容器,包含运行中、未运行的
# -q 只查看容器id
启动、停止、重启、删除
# 启动
docker start 容器id
# 停止
docker stop 容器id
# 重启
dockers start 容器id
# 删除 -f 强制删除
docker rm -f 容器id
查看日志
docker logs -f 容器id --tail 100
# -f 保持输出
# --tail 输出尾部多少行,默认所有
进入正在运行的容器
# 将后台运行的容器展示到前台,不能执行其他命令
docker attach 容器id
# 可以执行指定的cmd命令,如bash、curl等
docker exec -i -t 容器id cmd
拷贝文件
# 主机中文件拷贝到容器中
docker cp 主机文件路径 容器ID或容器名:容器路径
# 容器中文件拷贝到主机中
docker cp 容器ID或容器名:容器路径 主机文件路径
Docker registry
Docker registry是一个集中存储、管理镜像的远程服务,类似与maven的远程仓库。最常用的Docker registry就是官方的Docker Hub。
以镜像名:Tag指定哪个版本的镜像,来从Docker registry拉取指定镜像。如果不指定Tag,将以lastest作为默认标签。
例如我们拉取java 8的镜像,使用docker pull java:8。
总结

参考资料
纯洁的微笑:Docker(一):Docker入门教程
Docker 入门教程(2)——image与container的更多相关文章
- Docker入门教程(六)另外的15个Docker命令
Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...
- Docker(一):Docker入门教程
如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...
- Docker(一):Docker入门教程
如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...
- [转帖]Docker 入门教程
Docker 入门教程 http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html 自己学的还是太肤浅啊.. 作者: 阮一峰 日期: 201 ...
- docker 入门教程(5)——总结与学习资料
总结 registry:docker镜像仓库,集中存储和管理镜像,类似maven仓库. image:docker镜像,定义容器运行的文件和参数,可以看作是面向对象编程的类. container:doc ...
- Docker入门教程(九)10个镜像相关的API
Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...
- Docker入门教程(八)Docker Remote API
Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...
- Docker入门教程(七)Docker API
Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和 ...
- Docker入门教程(五)Docker安全
Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通 ...
随机推荐
- Ticket Game【博弈】
题目 Monocarp and Bicarp live in Berland, where every bus ticket consists of n digits (n is an even nu ...
- SpringCloud之OpenFeign
SpringCloud之openFeign Spring Cloud的子项目之一,Spring Cloud OpenFeign以将OpenFeign集成到Spring Boot应用中的方式,为微服务架 ...
- ORA-04063: package body "DBSNMP.BSLN_INTERNAL" has errors
ORA-04063: package body "DBSNMP.BSLN_INTERNAL" has errors 问题描述: 警告日志出现报错: Sun Jun 21 00:00 ...
- Netty 中的内存分配浅析-数据容器
本篇接续前一篇继续讲 Netty 中的内存分配.上一篇 先简单做一下回顾: Netty 为了更高效的管理内存,自己实现了一套内存管理的逻辑,借鉴 jemalloc 的思想实现了一套池化内存管理的思路: ...
- 「树形DP」洛谷P2607 [ZJOI2008]骑士
P2607 [ZJOI2008]骑士 题面: 题目描述 Z 国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的 ...
- postman 进阶技巧
cookie 清除缓存 code 生成接口自动化测试脚本 响应部分 pretty 响应以json或xml显示 raw 响应以文本显示 preview 以HTML网页行驶显示 断言 断言:用于判断接口请 ...
- Mybatis插件扩展以及与Spring整合原理
@ 目录 前言 正文 插件扩展 1. Interceptor核心实现原理 2. Mybatis的拦截增强 Mybatis与Spring整合原理 1. SqlSessionFactory的创建 2. 扫 ...
- 如何在同一台电脑上部署多个tomcat实现多个tomcat在同一台电脑上同时启动
有时候我们在开发的过程中难免会遇到需要在同一台电脑部署多个tomcat,且还要他们能够都单独同时启动不会对其他的tomcat造成影响 本文就简单记录一下,如何来实现这个骚操作 1. 下载tomcat的 ...
- Mysql基础(四):库、表、记录的详细操作、单表查询
目录 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细操作 3. 表的详细操作 4. 行(记录)的详细操作 5. 单表查询 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细 ...
- redis(十六):Redis 安装,部署(LINUX环境下)
第一步:下载安装包 访问https://redis.io/download 到官网进行下载.这里下载最新的4.0版本. 第二步:安装 1.通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压 ...