Docker仓库常用命令详解

登录

docker login

通过执行docker login命令来输入用户名、密码和邮箱来完成注册和登录。注册成功后,本地用户目录的.dockercfg中将保存着用户认证的信息。

从仓库拉取镜像

docker pull [镜像名]

搜索镜像

docker search [想要搜索的镜像名]

例如:

C:\Users\kunta>docker search centos
NAME                DESCRIPTION                   STARS        OFFICIAL      AUTOMATED
centos               The official build of CentOS.          5605        [OK]
ansible/centos7-ansible      Ansible on Centos7               123                   [OK]
jdeathe/centos-ssh         OpenSSH / Supervisor / EPEL/IUS/SCL Repos - …  113                   [OK]
consol/centos-xfce-vnc       Centos container with "headless" VNC session…  99                   [OK]
centos/mysql-57-centos7      MySQL 5.7 SQL database server          63
imagine10255/centos6-lnmp-php56  centos6-lnmp-php56               57                   [OK]
tutum/centos            Simple CentOS docker image with SSH access   45
centos/postgresql-96-centos7    PostgreSQL is an advanced Object-Relational …  39
kinogmt/centos-ssh         CentOS with SSH                 29      

我们可以根据镜像是否为官方提供的依据,分为两类。一种是类似centos这样的基础镜像,称为基础或根镜像。这些镜像是由Docker公司创建、验证、支持、提供的。

另外一种是类似ansible/centos7-ansible这样类型的镜像,它是由其它非官方的用户或组织提供的,一般是通过在基础镜像上添加了某些功能然后再提交发布上来供大家使用。像ansible/centos7-ansible这个镜像,它是由名为ansible这个用户或组织维护的,带有用户名为前缀,表明是某个用户的仓库。

自动创建

自动创建( Automated Builds)功能对于需要经常升级镜像内程序来说十分方便。有时候,用户创建了镜像,安装了某个软件,如果软件发布新版本则需要手动更新镜像。
而自动创建功能使得用户通过DockerHub指定跟踪个目标网站(目前支持GitHub或BitBucket)上的项目,一旦项目发现新的提交,则自动执行创建。

要配置自动创建,包括如下的步骤:

  1. 创建并登录Docker Hub, 以及目标网站; *在目标网站中连接帐户到Docker Hub。
  2. 在Docker Hub中配置一个 自动创建。
  3. 选取一个目标网站中的项目(需要含Dockerfile)和分支。
  4. 指定Dockerfile的位置,并提交创建。

之后,可以在DockerHub的“自动创建"页面中跟踪每次创建的状态。

创建和使用私有仓库、

安装Docker后,可以通过官方提供的registry镜像来简单搭建一-套本地私有仓库环境:

docker run -d -p 5000:5000 registry

docker run 命令执行时如果发现本地没有对应的镜像,则会先去拉取镜像再运行。

默认情况下,会将仓库创建在容器的/tmp/registry目录下。可以通过-v参数来将镜像文件存放在本地的指定路径上。
例如下面的例子将上传的镜像放到/opt/data/registry目录:

docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry 

此时,在本地将启动- 个私有仓库服务,监听端口为5000。

实战

首先在一台服务器机子上搭建好私有仓库,其地址为10.0.2.2:5000。然后再试图从机子上上传和下载镜像。
在本地上查看已有镜像:

C:\Users\kunta>docker images
REPOSITORY              TAG         IMAGE ID      CREATED       SIZE
hub.c.163.com/kuntang/lingermarket  latest       c7a70a3810cf    23 months ago    418MB
ubuntu2               16.04        1196ea15dad6    2 years ago     336MB
ubuntu                latest       1196ea15dad6    2 years ago     336MB
hub.c.163.com/public/ubuntu     16.04-tools     1196ea15dad6    2 years ago     336MB
hub.c.163.com/public/centos     6.7-tools      b2ab0ed558bb    2 years ago     602MB

使用docker tag命令把镜像的仓库标记为私有仓库机子地址(格式为:docker tag IMAGE[:TAG] [REGISTRYHOST/]NAME[:TAG]):

docker tag ubuntu2:16.04 10.0.2.2:5000/test
docker images

使用docker push命令上传镜像:

docker push 10.0.2.2:5000/test

用curl查看私有仓库的镜像

curl http://10.0.2.2:5000/v1/search

可以看出镜像已经上次成功。

现在可以到任意一台能访问到10.0.2.2地址的机器去下载这个镜像了:

docker pull 10.0.2.2:5000/test

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Docker 常用命令整理(实用篇)

    1. 查看docker信息(version.info) # 查看docker版本 docker version # 显示docker系统的信息 docker info 2. 对image的操作(search.pull.images.rmi.history) # 检索image docker search image_name # 下载image docker pull image_name #列出镜像列表; -a, --all=false Show all images; --no-trunc=

  • Docker service命令详解(小结)

    在分布式应用程序中,应用程序的不同部分被称为"服务".例如,如果有一个视频共享网站,它可能包括一个用于将应用程序数据存储在数据库中的服务,一个在用户上传东西后在后台进行视频转码的服务,一个用于前端页面的服务等等. 服务实际上只是"生产中的容器".每个服务只运行一个映像,但它编码了镜像的运行方式 - 应该使用哪个端口,容器应运行多少个副本以满足性能要求等等. 伸缩服务可以更改运行该软件的容器实例的数量,从而为进程中的服务分配更多计算资源. 定义.运行和伸缩 Docke

  • Docker 清理命令集锦

    杀死所有正在运行的容器 复制代码 代码如下: docker kill $(docker ps -a -q) 删除所有已经停止的容器 复制代码 代码如下: docker rm $(docker ps -a -q) 删除所有未打 dangling 标签的镜像 复制代码 代码如下: docker rmi $(docker images -q -f dangling=true) 删除所有镜像 复制代码 代码如下: docker rmi $(docker images -q) 为这些命令创建别名 复制代码

  • 详解修改docker时区及docker常用命令

    前几天遇到这样一个业务场景,数据库运行在docker 中,docker 的市区是utc 所以就跟北京时间相差8个小时.但是又不能重新运行一个容器,只能保证数据库运行状态,并把宿主机的时区复制给docker 容器.很苦恼, 首先我先把宿主机的时区改成啦CST 北京时间.然后把宿主机的时区复制给docker 容器.命令如下 docker cp /etc/localtime:[容器ID或者NAME]/etc/localtime 当然也可以进入容器进行修改时区(不过我的容器修改的时候总是报/etc/lo

  • Docker 基础之Dockerfile命令详解

    Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像.我们会先介绍 Dockerfile 的基本结构及其支持的众多指令,并具体讲解通过执行指令来编写定制镜像的 Dockerfile. 基本结构 Dockerfile 由一行行命令语句组成,并且支持已 # 开头的注释行.一般而言,Dockerfile 的内容分为四个部分:基础镜像信息.维护者信息.镜像操作指令和容器启动时执行指令.例如: # This dockerfile uses the Ubu

  • docker run起来之后执行多条命令

    最近在搞jenkins pipeline的部署工作,而在对.net core进行部署时不希望安装dotnet sdk,为了移植性更好,打算直接使用aspnetcore的docker镜像,通过docker去run它,而在这个时间出现了一个问题 docker run aspnetcore:2.0之后如果希望同时执行多个sh命令出现了问题,还非要写个脚本文件,这是大叔不喜欢的! docker run aspnetcore:2.0 ls && ls 结果是第一个ls显示的是容器里的内容,而第二个l

  • Docker常用的清除容器镜像命令小结

    前言 Docker 是一个非常有趣的项目.它自己宣称可以减轻部署服务器的难度,当然我相信里面有炒作的成分.但是实际使用后,我觉得 Docker 的表现还是可圈可点的.这篇文章主要总结了Docker清除容器镜像常用的命令,下面来一起看看吧. 杀死所有running状态的容器 docker kill $(docker ps -q) 删除所有已经停止的容器 docker rm $(docker ps -a -q) 删除所有\'untagged/dangling\' ()状态的镜像 docker rmi

  • 常用的Docker基本命令及用法汇总

    查看docker安装信息 docker info 获取docker镜像 docker pull azraelrabbit/monupw 创建docker容器 docker run --name monojexus -d -p 32022:22 -p 32080:80 -v /mydata:/data azraelrabbit/monupw 以后台进程的方式运行docker容器 sample_job=$(docker run -d monojexus /bin/sh -c "while true;

  • Docker run 命令的使用方法详解

    注意,本文基于最新的Docker 1.4文档翻译. Docker会在隔离的容器中运行进程.当运行 docker run命令时,Docker会启动一个进程,并为这个进程分配其独占的文件系统.网络资源和以此进程为根进程的进程组.在容器启动时,镜像可能已经定义了要运行的二进制文件.暴露的网络端口等,但是用户可以通过docker run命令重新定义(译者注:docker run可以控制一个容器运行时的行为,它可以覆盖docker build在构建镜像时的一些默认配置),这也是为什么run命令相比于其它命

  • Docker 修改文件是否需要重启(命令详解)

    Docker 修改文件是否需要重启 Docker 修改文件是否需要重启,在做项目的时候,经常会修改文件,对于命令不是多了解,用了也是试试的态度,这里就整理下该如何使用,提高工作效率. 需要修改一期项目中的代码了,之前每次都是用"试一下"的方式得出要不要启动,现在总结下哪些情况需要启动什么 1.首先再熟悉下每条命令的作用 docker-compose up -d -将会在后台启动并运行所有的容器 docker-compose stop -停止一个已经运行的容器,但不删除它,可通过dock

  • 详解Dockerfile 中的 COPY 与 ADD 命令

    Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景. Build 上下文的概念 在使用 docker build 命令通过 Dockerfile 创建镜像时,会产生一个 build 上下文(context).所谓的 build 上下文就是 docker build 命令的 PATH 或 URL 指定的路径中的文件的集合.在镜像 build 过程中可以引用上下文中的任何文件,比如我们要介绍的 COPY

随机推荐