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. 为什么wepy的数据无法渲染到实例里面去

    为啥明明WEPY是将数据渲染到视图还会出这个问题呢? 因为只是类似于 Vue 框架,所以不能完全实现数据渲染,尤其当异步操作的时候. (1)WePy 普通数据绑定. WePY使用脏数据检查对setDa ...

  2. Qt实现炫酷启动图-动态进度条

    目录 一.简述 二.动效进度条 1.光效进度条 2.延迟到达进度条 3.接口说明 三.启动图 1.实现思路 2.背景图切换 四.测试 1.构造启动图 2.背景图 3.其他信息 4.事件循环 五.源码 ...

  3. Adobe全系软件下载安装工具 CCMaker 1.3.6

    CCMaker是俄罗斯大神El Sanchez开发的一款集Adobe软件全家桶下载.安装.激活一条龙服务的小工具. 程序小巧强大,使用微软通用运行库开发,效率高体积小. 注意,此程序需要安装微软通用C ...

  4. mysql查询语句出现sending data耗时解决

    在执行一个简单的sql查询,表中数据量为14万 sql语句为:SELECT id,titile,published_at from spider_36kr_record where is_analyz ...

  5. Bzoj 2058: [Usaco2010 Nov]Cow Photographs 题解

    2058: [Usaco2010 Nov]Cow Photographs Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 190  Solved: 104[ ...

  6. hadoop的运行模式

    概述 1)资料查询(官方网址) (1)官方网站: http://hadoop.apache.org/ (2)各个版本归档库地址 https://archive.apache.org/dist/hado ...

  7. [PTA] 1002. 写出这个数 (Basic)

    import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Sc ...

  8. [leetcode ]429. N-ary Tree Level Order Traversale (easy)

    原题 思路: bfs,每一层遍历一次加到一个vector,同时把该点的子元素加到queue中. class Solution { public: vector<vector<int> ...

  9. 《C# 语言学习笔记》——定义属性

    属性定义的方式与字段类似,但包含的内容比较多. 属性拥有两个类似于函数的块,一个块用于获取属性的值,另一个块用于设置属性的值.这两个块也称访问器,分别用于get和set关键字定义,可以用于控制对属性的 ...

  10. JAVA-Spring框架之IOC(DI)(1)

    spring框架概述 spring是一个service层的框架,可以整合许多其 他框架,进行工作 spring的主要技术是IOC(DI)和AOP IOC(DI)-控制反转(依赖注入)AOP - 面向切 ...