Docker入门,看了不理解,假一赔命

写在前面

  • 这篇博客适合谁strong>

    • 对于Docker并不了解,只是有一点模糊的感觉,觉得Docker可以当成虚拟机用之类的

    • 只是下载了Docker软件,对于怎么配置,怎么玩,第一步干什么,完全一无所知

    • 其二,我从对Docker只有及其模糊(真的是模糊,我除了知道Docker是跟虚拟系统有关其他啥都不知道),到现在起码一问一不知(对应一问三不知)的状态,大概花了8个小时。

      这期间全靠我从 络上搜索到的资料。

      现在用我的话写出来,我觉得对于跟我相同开始情况的小白用户,能省不少时间,所以我要写。

    • 其次,确实,现在Docker相关的文章真的太多了,那我为什么还要写呢p>

    这篇文章主要是哪方面的Docker文章,纯入门strong>

    • 你做了哪些工作strong>

    • 首先,我一直都很好奇Docker这个东西,但从来没有机会去使用它。

      但是,这学期OS课的lab,纯Linux系统编程,虽然使用双系统或者虚拟机都是纯小学生的难易程度了,也不麻烦,但我想,为什么不用Docker呢p>

      用双系统或者虚拟机也太过小儿科!

      所以,我就这样接触了Docker

    • 那么我使用Docker实现了什么p>

      在lab中,我们需要用到的是纯终端下的gcc工具链还有vim等,那么这就是我需要的全部软件了!

      于是我在Docker中实现了「gcc+gdb+vim」环境,并push到了hub中。

    • 首先对于Docker的概念作出我的解释,尽量通俗易懂

    • 接着针对我用Docker的目的,从最开始的软件下载,到最后push一个自己的镜像到hub,整个过程以白话的形式描述出来,降低入门门槛,节省你的学习时间

    • 很高兴你问了我这个问题。

入门Docker,你要下载什么什么strong>

Docker for mac,这个你肯定要下载:点我下载Docker for mac and Windows的 区免费版本(https://www.docker.com/products/docker-desktop)

注册Docker官方账 ,你需要它,像github一样你可以使用git把项目上传到上面!

注册一个Docker的官方账 ,有利而无害,相信我!点我注册Docker Cloud官方账

Docker安装好,账 也注册后,点击桌面顶栏的Docker图标,点击sign in,登陆你的Docker账 。

注册DaoCloud账 ,获取加速服务!

不可否认,有时直接从Docker官方往本地pull镜像会十分缓慢。。。这时我们可以通过国内的Docker服务提供商免费获取加速pull镜像服务,阿里 易好像都有这种服务,我选择的是DaoCloud:点我注册DaoCloud账

注册后登陆DaoCloud,找到这个按钮:

实际操作下

查看Docker版本信息

显示的我的版本信息

当然如果你需要简单的信息可以使用docker -v

如何Pull你的第一个镜像strong>

Docker安装好后是不会自带镜像的,你需要从仓库自己pull一个镜像下来,自己制作自己的镜像也是一个道理,你可以通过在已有的镜像基础上生成自己的镜像或者:随便百度的如何创建自己Docker镜像得到的教程

Docker镜像官方好像只提供Linux

搜索ubuntu的Docker镜像,或者你想要的任何一个版本 的linux:

拉取官方最新版的ubuntu镜像:,其中的latest是一个标签(tag),表示是当前最新版本。你应该得到的信息,类似这样的

你输入的命令实际上相当于

命令,即从注册服务器中的名为的仓库中下载标签为的镜像。

由于我的lab统一要求,ubuntu需要14.04版本,所以我在hub里面搜了搜,找到了一个用户分享的14.04 64位纯净镜像(base image),下面将他的镜像扒下来


查看你本地的镜像仓库!

把初始镜像拉下来后,就可以启动它了,不过,可以先使用命令查看你自己的本地镜像,我随便找了个例子,你的也应该是类似这样的:

在列出信息中,可以看到几个字段信息:

  • 来自于哪个仓库,比如 ubuntu

  • 镜像的标记,比如 16.04

  • 它的 ID (唯一),比如e4415b714b62

  • 创建时间

  • 镜像大小

其中镜像的 ID 唯一标识了镜像,注意到 ubuntu:16.04 和 ubuntu:latest具有相同的镜像 ID ,说明它们实际上是同一镜像。TAG 信息用来标记来自同一个仓库的不同镜像。例如 ubuntu 仓库中有多个镜像,通过 TAG 信息来区分发行版本,例如10.04 、 12.04 、 12.10 、 13.04 、 14.04 等。例如可以使用命令指定使用镜像来启动一个容器。如果不指定具体的标记,则默认使用标记信息。

启动镜像并且安装软件

比如:

现在你已经有一个初始的镜像了,注意这个里面是什么都没有的,连vim都没装,是精简到不能再精简的镜像了。

1.首先启动它:

-it 表示运行在交互模式,是-i -t的缩写,也可以两个连在一起写-it是两个参数:-i和-t。前者表示打开并保持stdout,后者表示分配一个终端(pseudo-tty)一般这个模式就是可以启动bash,然后和容器有命令行的交互

可以看到我们终端的字头变成了,这就意味着我们的镜像已经创建了一个容器实例。现在我们可以对这个“ubuntu系统”进行操作了

比如安装vim:

看到我没有用sudo,是因为本来就已经是超级用户(root)状态了,可以看#代表超级用户$代表普通用户这个是Linux的基础知识不要忘了。

同理也可以更具自己的需求安装更多的软件。

想退出容器单!

如果使用exit,命令退出,则容器的状态处于Exit,而不是后台运行。

如果想让容器一直运行,而不是停止,可以使用快捷键 ctrl+p或者 ctrl+q 退出。此时容器的状态为Up。

查看当前正在运行的容器:

这里我们可以看到当前有一个ID为aa97ba3292ce的容器

那麽如何控制它呢r>

启动、停止、重启容器aa97ba3292ce的命令分别是:

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

软件装完,想保存环境mmit帮你!你这会是不是想起了gitmmit -m“”类似。

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

其中,-m指定说明信息;-a指定用户信息;aa97ba3292ce代表容器的id;sgy/ubuntu:vim指定目标镜像的用户名、仓库名和 tag 信息。我这里都是为了瞎编的用户名,我自己的用户名也不是sgy。

你运行命令的时候使用自己注册Docker时的用户名。

此时Docker中就有了我们新建的镜像sgy/ubuntu:vim,此镜像和原有的ubuntu镜像区别在于多了个vim工具。此时我们利用新镜像创建的容器,本身就自带vim了。

启动新创建的镜像,可以看到vim已经自带了。

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

如果你想要删除镜像strong>

如果想删除容器或者镜像,可以使用rm命令。

注意:删除镜像前必须先删除以此镜像为基础的容器(哪怕是已经停止的容器),否则无法删除该镜像,会 错类似这种。

有的时候尽管删除了全部容器,镜像还是无法删除,这时点击mac顶栏中的docker logo,选择restart,然后再试一次rmi,应该就没问题了。

docker命令图

太赞了:《Effective Java 第三版》最新中文版开放下载!

2020-03-25

你还不了解Redis的发布/订阅功能与Redis的Stream吗

2020-03-24

好文章,我在看??

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8747 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月22日
下一篇 2020年2月22日

相关推荐