Docker image 镜像介绍

操作镜像

使用 docker 命令行操作 docker 镜像

获取镜像

使用「docker pull +镜像名称」从网络上下载image镜像

[email protected] ~ $ docker pull

Usage: docker pull NAME[:TAG]

Pull an image or a repository from the registry

[email protected] ~/php $ docker  pull ubuntu
#pull +镜像的名称会下载该镜像集的laste tag的镜像
Pulling repository ubuntu
2185fd50e2ca: Pulling dependent layers
9cbaf023786c: Pulling dependent layers
3db9c44f4520: Pulling dependent layers
a9561eb1b190: Pulling dependent layers
195eb90b5349: Pulling dependent layers
463ff6be4238: Pulling dependent layers
c5881f11ded9: Pulling dependent layers
511136ea3c5a: Download complete
97fd97495e49: Downloading [=====>                                             ] 6.868 MB/67.5 MB 10m20s
.....
[email protected] ~/php $ docker  pull ubuntu:14.04
#表示下载该镜像集中14.04 tag的镜像
[email protected] ~/php $ docker  pull dl.dockerpool.com:5000/alexeiled/docker-oracle-xe-11g
#下载其他非官方仓库中的镜像,一般网站会给出详细的 pull 命令
Pulling repository dl.dockerpool.com:5000/alexeiled/docker-oracle-xe-11g
ba16d5d5e1aa: Pulling image (latest) from dl.dockerpool.com:5000/alexeiled/docker-oracle-xe-11g, endpoint: http://dl.dockerpool.com:5000ba16d5d5e1aa: Download complete
8dbd9e392a96: Download complete
#这一串数字是表示文件系统的层次,docker 的镜像和容器就是这一层一层的文件系统组成的
215be6e94fbb: Download complete
ef2887b77b73: Download complete
97774de1565b: Download complete
c6a02636680f: Download complete
2ae911074081: Download complete
e1787c817b10: Download complete
5e312dc5fae8: Download complete
cb35ce95b58c: Download complete
5f0e28679c8e: Download complete
...

列出镜像

使用「docker images」列出本地宿主主机上拥有的image镜像

[email protected] ~ $ docker images
REPOSITORY                                              TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
base/163                                                latest              468d347c06bc        28 hours ago        249.1 MB
test/supervisord                                        latest              468d347c06bc        28 hours ago        249.1 MB
ubuntu                                                  14.04               1357f421be38        4 days ago          192.7 MB
dl.dockerpool.com:5000/ubuntu                           14.04               1357f421be38        4 days ago          192.7 MB
dl.dockerpool.com:5000/mysql                            5.7                 e95cbb9f48ea        6 days ago          258.6 MB
mysql                                                   5.7                 e95cbb9f48ea        6 days ago          258.6 MB
mysql                                                   latest              9a09222edf60        6 days ago          235.6 MB
tutum/lamp                                              latest              4b32789c7d66        5 weeks ago         469.8 MB
tutum/tomcat                                            8.0                 866eb07a675e        6 weeks ago         539.4 MB
tutum/tomcat                                            latest              02e84f04100e        6 weeks ago         539.4 MB
dl.dockerpool.com:5000/alexeiled/docker-oracle-xe-11g   latest              ba16d5d5e1aa        7 months ago        2.388 GB
此处共有5列,分别表示镜像的名称、镜像的tag标记、镜像的唯一 image id、创建时间、大小

创建镜像

创建镜像的方法有 2 种:

1. 从文件系统导入

目前可用的文件系统主要是openvz的模板

比如:下载了一个ubuntu14.04的镜像 cat ubuntu-14.04-x86_64-minimal.tar.gz |docker import - ubuntu:14.04 然后用docker images看下:

[email protected] ~ $ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              14.04               05ac7c0b9383        17 seconds ago      215.5 MB

就多了一个我们的ubuntu镜像

2. 从 dockerfile 创建

dockerfile的内容后面章节详细介绍

3. 从现有的容器 commit 提交到一个新的 image

[email protected] ~ $ docker commit

Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Create a new image from a container‘s changes

  -a, --author=""     Author (e.g., "John Hannibal Smith <[email protected]>")
  #填写作者信息
  -m, --message=""    Commit message
  #填写提交信息
  -p, --pause=true    Pause container during commit
  #如果容器还在运行,先暂停容器
[email protected] ~ $ docker run -ti ubuntu:14.04 /bin/bash
#创建一个只有bash程序的容器
[email protected]:/# touch test
#在容器中建立一个文件
[email protected]:/# exit
#退出
exit
[email protected] ~ $ docker commit a92 for_test
#将刚才的容器提交为一个叫 for_test 的镜像,这里我们使用容器的 id 来指定我们要提交的容器,也可以使用容器的名字,他们都是唯一的
9e9c814023bcffc3e67e892a235afe61b02f66a947d2747f724bd317dda02f27
#返回新镜像的 id
[email protected] ~ $ docker images
REPOSITORY                                              TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
for_test                                                latest              9e9c814023bc        4 seconds ago       192.7 MB

删除镜像

使用「docker rmi + 镜像 id」删除镜像,当还有容器使用该镜像的时候是无法删除的。

[email protected] ~ $ docker rmi

Usage: docker rmi IMAGE [IMAGE...]

Remove one or more images

  -f, --force=false    Force removal of the image
  --no-prune=false     Do not delete untagged parents

[email protected] ~ $ docker images
REPOSITORY                                              TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
for_test                                                latest              60734a0ee3d6        3 seconds ago       192.7 MB
base/163                                                latest              468d347c06bc        29 hours ago        249.1 MB
test/supervisord                                        latest              468d347c06bc        29 hours ago        249.1 MB
ubuntu                                                  14.04               1357f421be38        4 days ago          192.7 MB
dl.dockerpool.com:5000/ubuntu                           14.04               1357f421be38        4 days ago          192.7 MB
dl.dockerpool.com:5000/mysql                            5.7                 e95cbb9f48ea        6 days ago          258.6 MB
mysql                                                   5.7                 e95cbb9f48ea        6 days ago          258.6 MB
mysql                                                   latest              9a09222edf60        6 days ago          235.6 MB
tutum/lamp                                              latest              4b32789c7d66        5 weeks ago         469.8 MB
tutum/tomcat                                            8.0                 866eb07a675e        6 weeks ago         539.4 MB
tutum/tomcat                                            latest              02e84f04100e        6 weeks ago         539.4 MB
dl.dockerpool.com:5000/alexeiled/docker-oracle-xe-11g   latest              ba16d5d5e1aa        7 months ago        2.388 GB
[email protected] ~ $ docker rmi 9a0
#当我们删除镜像 9a0 即 mysql:latest 镜像时,它删除了这个镜像所附带的所有aufs层
Untagged: mysql:latest
Deleted: 9a09222edf600a03ea48bd23cfa363841e45a8715237e3a58cb0167f0e8bad54
Deleted: 4daeda4ad839a152a3b649672bd5135977d7f81866d3bc0e16d0af3f65cc8af6
Deleted: cf07a411bf0883bd632940e8108dac49c64456a47f7390507de5685bbd6daf85
Deleted: 4f513746df18b222a07bb8d76d4b6d29752ce5dcb69bfad0ce92e6c1449a3821
Deleted: 228ecd435c8a29d25b77999036701a27f2d67874c915bb8eb9fb175b1f98aa60
Deleted: 37e4b3932afa186924a09eab332bc8ebec3aac8bac074314ed9a2d1e94547f50
Deleted: 898883ccfcee705e440547e30e240cb025c12410d7c9e4d2bcb11973ba075975
Deleted: 0a09ddcf99b7fd8fcb3525c41b54696038ecf13677f4459f1c98c742ffa60ab2
Deleted: 35bc8591e39be5089265a093e234d13a4b155a01d2ab9e8904eafa81664fb597
Deleted: 857e856e4481d59ee88a4cdedd9aaf855666bd494fa38506e6788361c0af4cda
[email protected] ~ $ docker ps
#使用 -ps 参数可以看到目前有上个容器在运行,其中一个容器是以tutum/lamp:laste镜像启动的
CONTAINER ID        IMAGE                              COMMAND                CREATED             STATUS              PORTS                                          NAMES
9cb2e45814e0        tutum/lamp:latest                  "/run.sh"              4 hours ago         Up 4 hours          0.0.0.0:3306->3306/tcp, 0.0.0.0:8080->80/tcp   loving_feynman
e3c136d76b44        tutum/tomcat:8.0                   "/run.sh"              6 hours ago         Up 6 hours          0.0.0.0:80->8080/tcp                           tomcat001
fe9e65aaf58c        dl.dockerpool.com:5000/mysql:5.7   "/entrypoint.sh mysq   6 hours ago         Up 6 hours          3306/tcp                                       db001,tomcat001/tomysql
[email protected] ~ $ docker rmi 4b3
#当我们试图删除tutum/lamp:laste 镜像时,提示我们目前还有容器在使用该镜像,无法删除,如需删除则需要停止容器并用-f 参数删除镜像
Error response from daemon: Conflict, cannot delete 4b32789c7d66 because the running container 9cb2e45814e0 is using it (docker untagged the image), stop it and use -f to force
2014/10/15 08:23:59 Error: failed to remove one or more images

搜寻镜像

使用「docker search + 关键字」搜索共享的镜像,默认搜索官方仓库的镜像,搜索私有仓库的语法在私有仓库章节详细介绍。

[email protected] ~ $ docker search

Usage: docker search TERM

Search the Docker Hub for images

  --automated=false    Only show automated builds
  --no-trunc=false     Don‘t truncate output
  -s, --stars=0        Only displays with at least x stars
#一般使用不带参数的搜寻即可,比如要搜寻mysql关键字的 image
[email protected] ~ $ docker search mysql
#返回的信息有5列,分别代表镜像集名称,镜像的描述,被收藏的次数,时候属于官方出品,时候支持自动创建
NAME                                          DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                                         MySQL is a widely used, open-source relati...   193       [OK]
tutum/mysql                                   MySQL Server image - listens in port 3306....   69                   [OK]
orchardup/mysql                                                                               36                   [OK]
tutum/lamp                                    LAMP image - Apache listens in port 80, an...   30                   [OK]
tutum/wordpress                               Wordpress Docker image - listens in port 8...   24                   [OK]
paintedfox/mariadb                            A docker image for running MariaDB 5.5, a ...   19                   [OK]
dockerfile/mysql                              Trusted automated MySQL (http://dev.mysql....   11                   [OK]
anapsix/gitlab-ci                             GitLab-CI Continuous Integration in Docker...   11                   [OK]
centurylink/drupal                            Drupal docker image without a DB included ...   10                   [OK]
google/mysql                                  MySQL server for Google Compute Engine          10                   [OK]
stenote/docker-lemp                           MySQL 5.6、PHP 5.5、Nginx、Memcache                9                    [OK]

上传镜像

使用「docker push +关键字 」上传镜像到官方仓库,上传私有仓库的语法在私有仓库章节详细介绍。

[email protected] ~ $ docker push

Usage: docker push NAME[:TAG]

Push an image or a repository to the registry
[email protected] ~ $ docker push base/163
The push refers to a repository [base/163] (len: 1)
Sending image list

Please login prior to push:
Username: waitfish
Password:
Email: [email protected]
第一次上传需要填写在dockerhub注册的帐号信息
时间: 2024-10-10 11:21:40

Docker image 镜像介绍的相关文章

Docker images详细介绍及管理制作镜像

Docker   images   介绍:      docker  images 是docker 的三大组件之一   docker把下载好的镜像上传到docker本地镜像仓库中,如果本地镜像仓库中不存在需要用到的镜像,docker会从一个镜像库中去下载所需镜像,默认的公共仓库是Docker HUB. Docker image 的内容:        使用和管理本地主机上images      创建一个基础的images      上传images到docker hub(公共images仓库)

Docker的镜像、容器和仓库

Docker本身的镜像是构建在其本身的文件系统之上的,Docker有很多种类的文件系统,Docker所支持的文件系统有以下几种:Aufs.devicemapper.btrfs和VFS,其中前三种是联合文件系统,可以支持分层,可以快速迭代,可以回滚.VFS 不支持.平时用的最多的是aufs 和devicemapper.Aufs(advanced multilayered unification filesystem), 直译过来就是高级分层联合文件系统,做为一种Union FS ,它支持将不同的目

Docker的镜像和容器

Docker image详细介绍 在之前的介绍中,我们知道docker images 是docker的三大组件之一. docker把下载的 images 存储到docker主机上,如果一个 image 不在主机上,docker会从一个镜像仓库下载,默认的仓库是  DOCKER HUB  公共仓库. 接下来将介绍更多关于docker images 的内容,包括: 使用和管理本地主机上的 images 创建一个基础的 images 上传 images 到docker hub (公共 images 仓

docker 拷贝镜像文件

1.概述 我们制作好镜像后,有时需要将镜像复制到另一台服务器使用. 能达到以上目的有两种方式,一种是上传镜像到仓库中(本地或公共仓库),但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网的,所以如果使用仓库的方式,只能自己搭建私有仓库,这会在另一篇文章中介绍. 如果我们仅仅是要复制到另外少数的服务器,搭建私有仓库显然没有这个必要,而将镜像保存为文件上传到其他服务器再从文件中载入镜像也是一个不错的选择. 可以使用Docker save和Docker load命令来存储和载入镜像. 2.保存

Docker 基础 : 镜像

目录 获取镜像 查看镜像信息 搜索镜像 删除镜像 创建镜像 导出和导入镜像 上传镜像 总结 镜像是 Docker 的三大核心概念之一.Docker 运行容器前需要本地存在对应的镜像,如果本地没有对应的镜像,Docker 会尝试从默认的镜像仓库下载.当然用户也可以通过配置,使用自定义的镜像仓库.本文将介绍镜像的具体操作,包括使用 pull 命令从 Docker Hub 的镜像仓库中拉取(下载)公共镜像:查看本地已有的镜像信息:使用 search 命令搜索镜像:删除镜像标签和镜像文件:创建用户自定义

Docker实用命令介绍

Docker实用命令介绍 1. docker启动.关闭.停止 ╭─wil-xz in ~ 12:15:44 ╰─?(?﹏?.)? service docker restart Redirecting to /bin/systemctl restart docker.service ╭─wil-xz in ~ 12:15:44 ╰─?(?﹏?.)? service docker stop Redirecting to /bin/systemctl stop docker.service ╭─wil

Docker: 基础介绍及配置安装 [一]

一.Docker介绍 Docker是Docker.lnc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源 Docker是通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等.由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率 二.Docker的三大理念 构建 运输 运行 Docker

Docker下载镜像并创建容器运行

在linux系统中安装完成docker后,我们开始进行docker的镜像.容器的使用. 在使用docker时,首先要明确的两个概念:image(镜像) 与  container (容器) image:根据官网的解释,镜像是一个为容器提供服务的独立的文件系统,它包含独立运行所需要的文件与代码. 简单地说:镜像就是一个不包含linux内核而又精简的linux系统 docker 镜像默认存储在/var/lib/docker/<storage-driver>中,现在最新版本的linux系统的存储驱动一

DOCKER学习_002:Docker的镜像容器管理

一 Docker的基本信息 前面已经安装了Docker,现在看一下已安装Docker的安装环境以及其他信息 1.1 系统环境 [[email protected] ~]# uname -r 3.10.0-957.27.2.el7.x86_64 [[email protected]-server3 ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) 1.2 Docker版本 [[email protected] ~]#