前言

Docker的功能和特性有很多,各种运行命令、参数等也都要学习和练习。

比如:如何管理数据、如何管理网络、如何互相配合工作、如何编写更专业的Dockerfile等。

本文讲讲Docker镜像,容量,仓库三个基本操作。

镜像的基本操作

安装完Docker引擎之后,就可以对镜像进行基本的操作了。

我们从官方注册服务器(https://hub.docker.com)的仓库中pull下CentOS的镜像,前边说过,每个仓库会有多个镜像,用tag标示,如果不加tag,默认使用latest镜像:

以上是下载一个已有镜像,此外有两种方法可以帮助你新建自有镜像。
(1)利用镜像启动一个容器后进行修改 ==> 利用commit提交更新后的副本

此时利用exit退出该容器,然后查看docker中运行的程序(容器):

这里将容器转化为一个镜像,即执行commit操作,完成后可使用docker images查看:

其中,-m指定说明信息;-a指定用户信息;72f1a8a0e394代表容器的id;xianhu/centos:git指定目标镜像的用户名、仓库名和 tag 信息。注意这里的用户名xianhu,后边会用到。

此时Docker引擎中就有了我们新建的镜像xianhu/centos:git,此镜像和原有的CentOS镜像区别在于多了个Git工具。此时我们利用新镜像创建的容器,本身就自带git了。

利用exit退出容器。注意此时Docker引擎中就有了两个容器,可使用docker ps -a查看。

(2)利用Dockerfile创建镜像

Dockerfile可以理解为一种配置文件,用来告诉docker build命令应该执行哪些操作。一个简易的Dockerfile文件如下所示,官方说明:Dockerfile reference:

有了Dockerfile之后,就可以利用build命令构建镜像了:

其中-t用来指定新镜像的用户信息、tag等。最后的点表示在当前目录寻找Dockerfile。
构建完成之后,同样可以使用docker images命令查看:

以上就是构建自己镜像的两种方法。其中也涉及到了容器的一些操作。如果想删除容器或者镜像,可以使用rm命令,注意:删除镜像前必须先删除以此镜像为基础的容器。

镜像其他操作指令:

容器的基本操作

在前边镜像的章节中,我们已经看到了如何基于镜像启动一个容器,即docker run操作。

这里-it是两个参数:-i和-t。前者表示打开并保持stdout,后者表示分配一个终端(pseudo-tty)。此时如果使用exit退出,则容器的状态处于Exit,而不是后台运行。如果想让容器一直运行,而不是停止,可以使用快捷键 ctrl+p ctrl+q 退出,此时容器的状态为Up。

除了这两个参数之外,run命令还有很多其他参数。其中比较有用的是-d后台运行:

这里第二条命令使用了-d参数,使这个容器处于后台运行的状态,不会对当前终端产生任何输出,所有的stdout都输出到log,可以使用docker logs container_name/container_id查看。
启动、停止、重启容器命令:

后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:

删除容器的命令前边已经提到过了:

仓库的基本操作

Docker官方维护了一个DockerHub的公共仓库,里边包含有很多平时用的较多的镜像。除了从上边下载镜像之外,我们也可以将自己自定义的镜像发布(push)到DockerHub上。

在镜像操作章节中,我们新建了一个xianhu/centos:git镜像。

(1)访问https://hub.docker.com/,如果没有账号,需要先注册一个。

(2)利用命令docker login登录DockerHub,输入用户名、密码即可登录成功:

(3)将本地的镜像推送到DockerHub上,这里的xianhu要和登录时的username一致:

(4)以后别人就可以从你的仓库中下载合适的镜像了。

对应于镜像的两种创建方法,镜像的更新也有两种:

创建容器之后做更改,之后commit生成镜像,然后push到仓库中。

更新Dockerfile。在工作时一般建议这种方式,更简洁明了。

这里再一次回顾一下三个重要的概念:镜像、容器、仓库:

【从仓库(一般为DockerHub)下载(pull)一个镜像,Docker执行run方法得到一个容器,用户在容器里执行各种操作。Docker执行commit方法将一个容器转化为镜像。Docker利用login、push等命令将本地镜像推送(push)到仓库。其他机器或服务器上就可以使用该镜像去生成容器,进而运行相应的应用程序了。】

利用Docker创建一个用于Flask开发的Python环境

上边已经解释和练习了Docker的基本操作命令,下边以实例的形式完整走一遍流程。

我们创建一个用于Flask开发的Python环境,包含Git、Python3、Flask以及其他依赖包等。

完整命令如下:

linux服务器开发,高级架构技术分享后台私信:1。可分享资料!

欢迎一起交流分享。

docker pull 下载一半_Docker三个重要的基本操作,镜像,容量,仓库相关推荐

  1. docker pull 下载一半_Docker 从入门到掉坑

    Docker 介绍 简单的对docker进行介绍,可以把它理解为一个应用程序执行的容器.但是docker本身和虚拟机还是有较为明显的出入的.我大致归纳了一下,可以总结为以下几点: docker自身也有 ...

  2. docker pull 下载一半_docker镜像pull不下来最终解决方法

    pull镜像wordpress下来,但是出现如下错误: # docker pull wordpress:latest Error response from daemon: Get https://r ...

  3. docker pull下载镜像时的报错及其解决方法

    docker pull下载镜像时的报错及其解决方法 参考文章: (1)docker pull下载镜像时的报错及其解决方法 (2)https://www.cnblogs.com/it-artical/p ...

  4. docker pull下载很慢_一文了解Docker容器技术的操作

    一文了解Docker容器技术的操作 前言 相信点进这篇文章的Coder,不管是在各大技术论坛上.技术交流群,亦或招聘网上,应该都有见到过Doker容器技术的面孔,随着社会节奏的加快以及迫于生活的压力, ...

  5. Docker Pull 下载镜像

    Docker Pull Document 使用 docker pull [选项] [仓库/]name[:版本|@digest] 版本默认使用 :latest 选项 名称 默认 描述 --all-tag ...

  6. docker pull 下载加速-2018

    本文由首发于CSDN个人博客 授权转载微信公众号 xinsz08 使用docker pull,命令下载镜像太慢了,默认是从国外的,本文记录下如何配置国内阿里云竞相加速方式.文档力求简单. 环境说明: ...

  7. docker pull 下载镜像加速

    本文由首发于CSDN 授权转载微信公众号 xinsz08 使用docker pull,命令下载镜像太慢了,默认是从国外的,本文记录下如何配置国内阿里云竞相加速方式.文档力求简单. 环境说明: Linu ...

  8. 三分钟Docker-推送本地镜像到仓库

    在上篇文章中,我们完成了应用程序容器化,把webapi项目构建镜像并容器化运行.本文将会演示如何把自己构建的镜像上传到docker官网的仓库和自己私有仓库 本地镜像推送到官网的registry 1.创 ...

  9. docker pull下载很慢_假如服务器上没有 Docker 环境,你还能愉快的拉取容器镜像吗?...

    你是否曾经遇到过需要在没有安装任何 Docker 客户端的机器上拉取容器镜像这样变态的需求呢?如果有,你当时又是如何解决的呢?今天我们就来给大家介绍几种另辟蹊径的方法来实现这样的需求. 使用 dock ...

最新文章

  1. case when用法
  2. (1)java虚拟机概念和结构图
  3. PHP LOG使用心得(2)
  4. python电子相册制作软件下载_艾奇KTV电子相册制作软件
  5. 工业POE供电交换机在安防应用中的优势有哪些?
  6. mysql某个表的列除以2_数据库mysql(二)
  7. 计算机组成原理 试讲,常州信息职业技术学院-试讲ppt-计算机组成原理-信息表示.ppt...
  8. Android 获取联系人列表
  9. 14.5-全栈Java笔记:java.awt这些布局怎么写?|流式|边界|网格
  10. 修改Linux系统最大TCP连接数限制
  11. Python学习笔记2:indent expected、unindent does not match any outer indentation level
  12. 一文读懂五险一金,离职空窗期五险一金又该怎么办
  13. 项目杂识-FOV(视场角)
  14. 原生js实现横向 tab 栏切换,选中项自动滚动居中
  15. Java实体类——entity类的使用与学习
  16. TIFF图像文件(四):LZW压缩
  17. 微信小程序用什么编写
  18. 老男孩Python全栈9期视频完整版
  19. 最牛黑科技!一度电能跑1230公里的电动车
  20. 请插入多卷集的最后一张磁盘,然后单击”确认“继续

热门文章

  1. win7 python2.7安装PIL库
  2. Android开发笔记(二)
  3. PHP从千千静听服务器获取lrc歌词
  4. python多维数组初始化后赋值的问题
  5. IE8的 JS 引擎如此不堪(二) - 解决方案
  6. 如何卸载自己手机上的APK文件程序
  7. vue学习报错---Newline required at end of file but not found(Vue格式化代码问题)
  8. spring中最重要的一些Aware接口
  9. window.parent与window.opener的区别与使用
  10. 孔维滢 20171010110《面向对象程序设计(java)》第十七周学习总结