0.前言


  本章主要写一些怎么使用Docker,拉取镜像和创建容器等之类的Docker的常用基本操作。在开始写之前,大家需要明白一下几个名词的含义

  1.镜像:镜像是指一个类似于安装包的东西,尝试安装过电脑系统的同学应该知道各种雨林木风、番茄花园、大白菜等win7等win7镜像,其实说白了,就是安装系统的一个文件。在docker中也是这么个玩意,需要我们镜像仓库上下载

  2.容器:容器是指通过镜像构建的一个运行环境。例如我通过雨林木风的win7.gho安装好了win7系统,现在win7系统就是一个容器。

  3.镜像仓库:专门存放镜像的一个网站。docker的官方镜像仓库是:https://hub.docker.com/,因为访问速度慢,所以国内一般用阿里云仓库或者网易之类的。

1.拉取、查看、删除镜像


1.1 拉取镜像


  在docker中拉取镜像命令是

docker pull [镜像名称]

  例如我要拉取一个redis镜像,打开控制终端(windows可以使用powershell或者cmd命令)输入以下命令

docker pull redis

  我以powershell举例子,输入 docker pull redis,然后回车(PS:如果你身处国内,最好配置一下国内的镜像源,否则下载速度感人,如果不会配置,请参见我的第一篇文章《Docker快速入门系列——(一)介绍和配置Docker》)。

  

  敲完回车之后,就会变成下载docker会自动去镜像网站上下载redis,这里说明一下,如果你需要指定镜像版本,只需要在镜像后面追加@[版本号即可],如果没追加,默认为最新版本。以redis为例子,我想要使用redis1.0.1的版本就输入这个命令

docker pull redis@1.0.

  下载完成之后,就会变成这样。说明我们已经把redis镜像拉取到本地了

1.2 查看镜像


  在docker 中查看镜像的命令是

docker image ls

    命令会列出你当前所拉取的镜像名称,我这里一共拉取了redis、mongo、mysql、ubuntu四个镜像。回到前言上讲的,镜像就相当于安装包,我这里就相当于下载好了redis等安装包。

1.3 删除镜像


    在docker中删除镜像的命令是

docker image rm [镜像名称或者镜像ID]

  我们可以通过image rm 加上名称或者ID来删除一个镜像,这个ID就是我们在 docker image ls所列出的IMAGE_ID的值,当我们碰到镜像名称一样,我们就可以通过唯一ID确定删除哪个镜像。尝试删除redis镜像

docker image rm redis

  上图表示删除成功

2. 创建容器


  容器是构建在镜像之上的,如果把镜像比喻成安装包,那么容器就是你安装成功的软件,拿微信举例子,你在微信官网上下载一个安卓的安装包,这个微信安装包就是镜像,然后你在你的红米手机上安装成功了,会显示微信图标,然后你可以使用微信这个软件。则微信这个软件就是构建出来的容器。如果你通过某些奇淫巧技,让你的红米手机可以安装两个或者更多个微信且同时存在,那么就是说你构建了很多容器

  2.1 创建容器


  你可以通过以下命令来创建一个容器:

docker run -d -p [主机端口号]:[容器端口号] --name [自定义名称] [镜像名称]

  参数解释:

  docker run:表示创建或者运行某个容器

  -d:表示使用后台进程(就是不阻塞当前进程)

  -p:表示指定端口号

  [主机端口号]:表示安装docker的那台机子通过哪个端口与容器通信

  [容器端口号]:表示创建的容器通过哪个端口与主机通信

  --name [自定义名称]:表示给你创建的容器取个名字

  [镜像名称]:不用多说,就是我们拉取下来的镜像

  我们尝试运行一下redis,输入以下命令(首先确保你的redis这个镜像存在)

docker run -d -p : --name redis01 redis

  运行结果如下,会返回一个64位长度的字符串,这个就是容器的id,也是唯一的。

  

  2.2 查看运行的容器


  运行完容器之后,怎么看启动成功了,通过以下命令

docker ps

  

  可以看到status那一栏显示Up状态,则代表成功了。现在我们通过软件连接一下,看下redis服务器是否能够正常运行

  图上可以看到,我们已经成功运行了redis容器

  2.3 停止和删除容器


  运行完容器,怎么停止和删除呢,通过以下命令(要先停止才能删除容器

  停止:

docker stop [容器名称]

  删除:

docker rm [容器名称]

  参数解释:

  [容器名称]:你可以使用--name 参数后面自己定义的名字,或者使用返回给你的64位字符长度的ID

  停止redis容器,会返回redis容器的名字

  删除redis容器,也会返回redis容器的名字

  

3. 总结


  本章主要讲了镜像和容器的关系。

Docker最简单入门之(二)——简单使用Docker的更多相关文章

  1. Windows10下的docker安装与入门 (二)使用docker引擎在容器中运行镜像

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  2. Docker的使用初探(二):Docker与.NET Core的结合

    目录 Docker的使用初探(二):Docker与.NET Core的结合 添加Dockefile 1. 在创建项目时添加 2. 手动添加 3. 容器业务流程协调控制程序支持 Dockefile语法 ...

  3. 第二篇:docker 简单入门(二)

    本篇目录 写在最前面的话 最常用的docker命令 获取远程仓库镜像 写在最前面的话 如上图大家看到的这样,以后此类文章请到其他平台查阅,由于博客园提示说,内容太多简单,所以以后简单的内容我会放在cs ...

  4. 【VB超简单入门】二、知识准备

    在开始编程之前,需要先熟悉一下各种操作和术语,以后学习编程才能得心应手. 首先最重要的操作当然就是-电脑的开机关机啦~(开个玩笑哈哈),必须掌握软件的安装和卸载,还有能编写批处理程序对平时的使用也是很 ...

  5. Slickflow.NET 开源工作流引擎快速入门之二: 简单并行分支流程代码编写示例

    前言:对于急切想了解引擎功能的开发人员,在下载版本后,就想尝试编写代码,完成一个流程的开发和测试.本文试图从一个最简单的并行分支流程来示例说明,如何快速了解引擎代码的编写. 版本:.NET Core2 ...

  6. Git 简单入门(二)

    分支管理 分支的作用 提交不完整的代码到主分支上会导致别人不能正常开发 如果等代码全部写完再提交,存在丢失每天进度的风险 详见:https://segmentfault.com/q/101000001 ...

  7. Docker入门(二)在docker使用MongoDB

      本文将介绍如何在docker中使用MongoDB.   如果你是一名MongoDB的初学者,那么你入门MongoDB的第一件事就是安装MongoDB,但是安装MongoDB又不是一件简单的事情,还 ...

  8. 小白的docker极简入门(二)、5分钟教你玩转docker安装

    0-前言 上一篇中,我们已经安装后Linux了,我们需要在Linux下安装docker,然后才能在docker中安装和部署各种应用 同样,5分钟教你完成docker正确安装和使用, 不是纸上谈兵,不是 ...

  9. socket.io简单入门(一.实现简单的图表推送)

    引子:随着nodejs蓬勃发展,虽然主要业务系统因为架构健壮性不会选择nodejs座位应用服务器.但是大量的内部系统却可以使用nodejs试水,大量的前端开发人员转入全堆开发也是一个因素. 研究本例主 ...

  10. kettle教程(1) 简单入门、kettle简单插入与更新。打开kettle

    本文要点:Kettle的建立数据库连接.使用kettle进行简单的全量对比插入更新:kettle会自动对比用户设置的对比字段,若目标表不存在该字段,则新插入该条记录.若存在,则更新.   Kettle ...

随机推荐

  1. 试题--创建三个进程/线程,依次输出 A、B、C

    这是一道机试题,大概的预期执行结果如下图所示 最近刚好在学习linux编程,便使用多线程及多进程分别实现了一遍,其中多线程较为简单,使用0/1信号量在线程间实现生产者/消费者即可:多进程则稍微复杂一些 ...

  2. 微服务-springboot-activiti工作流

    idea中安装aciviti并使用,链接地址:https://blog.csdn.net/qq_41728540/article/details/79506463 一.创建springboot项目,勾 ...

  3. 并发编程-concurrent指南-Lock-可重入锁(ReentrantLock)

    可重入和不可重入的概念是这样的:当一个线程获得了当前实例的锁,并进入方法A,这个线程在没有释放这把锁的时候,能否再次进入方法A呢? 可重入锁:可以再次进入方法A,就是说在释放锁前此线程可以再次进入方法 ...

  4. UAVStack的慢SQL数据库监控功能及其实现

    UAVStack是一个全维监控与应用运维平台.UAV.Monitor具备监控功能,包含基础监控.应用/服务性能监控.日志监控.业务监控等.在应用监控中,UAV可以根据应用实例画像:其中应用实例组件可以 ...

  5. abview查找范例时说 NI服务器未定位 这是怎么回事?

    NI服务定位器未运行在使用labview查找范例时,出现“NI服务定位器未运行”的对话框,而后不能够打开范例.有以下方法.方法一:是防火墙服务禁用造成的,在防火墙规则里面找,把和NI相关的都允许. 方 ...

  6. 1.Actor编写-ESGrain与ESRepGrain

    ESGrain 生命周期 Ray中ESGrain继承自Grain扩展了Grain的生命周期.Grain的生命周期参见文档附录:1-Grain生命周期-译注.md ESGrain重写了Grain的OnA ...

  7. Mac上pycharm集成pyspark

    前提: 1.已经安装好spark.我的是spark2.2.0. 2.已经有python环境,我这边使用的是python3.6. 一.安装py4j 使用pip,运行如下命令: pip install p ...

  8. thread学习笔记--BackgroundWorker 类

    背景: 在 WinForms 中,有时要执行耗时的操作,比如统计某个磁盘分区的文件夹或者文件数目,如果分区很大或者文件过多的话,处理不好就会造成“假死”的情况,或者报“线程间操作无效”的异常,或者在该 ...

  9. 【CYH-02】noip2018数论模拟赛:赛后题解

    1.小奔的矩阵 2.大奔的方案 3.小奔与不等四边形 4.小奔的方案 当然本次比赛肯定难度不会仅限于此啦!后续还会--

  10. JWT(JSON WEB TOKEN)实例

    JWT的工具类 加密解密工具 package top.wintp.crud.util; import com.auth0.jwt.JWTSigner; import com.auth0.jwt.JWT ...