资讯专栏INFORMATION COLUMN

docker入门指导

WilsonLiu95 / 3371人阅读

摘要:验证安装分析上面指令结构告诉操作系统,正在使用程序子指令,创建并运行容器告诉哪个被导入容器打印如下完美,你的电脑上已经成功安装了。我们通过上面指令查看镜像,显示的可能比容器要多。

验证安装
docker run hello-world

# 分析上面指令结构:
# docker: 告诉操作系统,正在使用docker程序
# run: 子指令,创建并运行容器
# hello-world: 告诉docker哪个image被导入容器

打印如下:

完美,你的电脑上已经成功安装docker了。现在我们开始了解第一个概念:容器。按照下面的操作来,先有个感官的认识,稍后会详细解释容器。

查看container

从上面的指令可以知道,我们的docker已经安装成功了。我们可以用下面的命令查看自己正在运行的容器:

docker ps  //显示所有正在运行的容器

当然,也可能显示没有正在运行的容器(刚开始安装,还没有运行任何容器)。我们给它加个参数就能查看所有容器,包括没有运行的、正在运行的和运行过的。如下:

docker ps -a

结果图:

这样就可以看到所有的容器,你一定能找到 hello-world这个运行过的容器。

镜像

镜像,就是一个文件系统,查看自己local的镜像命令:

docker images   //显示的是本地镜像

镜像保存到本地的好处:当加载image的时候,会直接在本地加载,不用去远程下载。节省时间,节省宽带。查找镜像地址: https://store.docker.com/comm...

镜像和容器的区别:容器只是镜像的一个实例,镜像被加载只是创建了一个实例。我们通过上面指令查看镜像,显示的可能比容器(docker ps -a) 要多。因为还有一些镜像只是下载在本地,却没有被加载,好比maven有个本地仓库。

删除容器
docker rm [id/name]

#删除所有
docker rm `docker ps -a -q`  #-q表示只返回容器的id

需要注意的是:上面的命令只是删除容器,不是删除镜像。

构建自己的镜像

首先创建一个Dockerfile文件,这个文件是一个菜单。由files,environment,commonds 来构建一个images.

创建一个mydocker文件夹
mkdir mydocker
// 进入该目录下
cd mydocker
在新建目录下创建Dockerfile文件
touch Dcokerfile
//用vim打开编辑
vim Dockerfile
开始编写Dockerfile

下面FROM指令的意思是,告诉Docker你要基于哪个镜像进行构建

FORM docker/whalesay:latest

下面RUN指令,给镜像安装一个软件fortunes(因为whalesay是基于ubuntu的,所以下面可以执行一些对象的指令)

RUN apt-get -y update && apt-get install fortunes 

下面的CMD指令, 告诉镜像(这里是指成功后的镜像)最后需要去运行的指令

CMD /usr/games/fortune -a | cowsay
好了,一切就绪。开始构建吧!

在Dockerfile同级目录下运行,用docker build 来构建,-t (tag)是给镜像一个tag,方便后面运行。表示Dockerfile在当前目录下

docker build -t robin-whale .

我们可以看看执行的打印输出,可以了解下详细的执行过程,成功会打印输出:Successfully built c5857....

查看下自己构建的镜像

还记得怎么查看吗?对,你猜对了!就是用images来查看

docker images   


可以看到第一行,就是我们刚刚构建的镜像。

Docker Hub 注册一个Docker Hub账户

在这里创建账号

创建仓库

注册账号后,登陆。在自己的主页面,点击 create Repository创建一个自己的仓库。

Visibility 这里选择public,这样才能分享给他人使用,我们是要拥抱开源。

给你的images打上你的标志

在上传镜像之前,先给你的images打上你自己的标签吧!证明这是我的images,可能一不小心,你就出名了,哈哈!!!

账户名/镜像:版本

这里[账户名/]就是你的标签,官方给出的是,标签用你的docker hub账户名。给某个镜像打标签用 docker tag

docker tag c58570c0ad0d robinyang0909/robin-whale:latest

//docker tag 镜像id 新标签:版本

再来执行 docker images 看看

可以看到 robinyang0909/robin-whale这个镜像生成了。再看时间,可以发现,并没有新建一个镜像,只是新建了一个images名,指向了robin-whale这个镜像。

万事俱备,现在可以上传自己的镜像了!你已经迫不及待出名了吗?别慌,先登录下你的账户。

登陆自己的账户
docker login

执行上面命令,然后输入你的账户名和密码,出现 Login Succeeded 登陆成功。

开始push镜像
docker push robinyang0909/robin-whale

回车,开始push你的镜像,过程估计有点慢,因为docker hub 毕竟不是我们做的,等谁有能力了,你们就去整一个牛逼的开源技术,然后服务器就放在我们自己国家。

push成功后显示结果:

怎么测试我们push到docker hub上的是一个完整的镜像呢?对,你猜对了!删除本地镜像,然后重新从仓库下载。

删除本地镜像

有的程序员有“洁癖”,不想在自己的电脑放一些没用的东西占内存,比如刚开始下载的 hello-world镜像,我就想删掉!

docker rmi c58570c0ad0d # 你的id肯定跟这里不一样

要是上面的命令删不掉的话,用下面的试试:

docker rmi -f c58570c0ad0d  #强制删除

当然,刚开始学习,你的机器上估计也没有什么重要的镜像,应该都可以删除吧!这里教你一招,清空!慎用!

docker rmi -f `docker images -a -q`
体验下载自己容器的快乐

好了,经理上面的删除镜像,相信你已经删除完那个上传的镜像。开始下载运行自己的镜像吧!怎么做?相信你没有忘记,就在最上面, 对!docker run ..

docker run robinyang0909/robin-whale

记得加上自己账户名,回车,开始下载。估计有点慢,因为我们上传到的是docker hub上,不是国内服务器。

看到上图的话,说明你自己构建镜像,上传,下载,运行这几步都是成功的!恭喜你成功了迈出了第一步。现在你已经慢慢入门的,可以去说,我会使用docker了,哈哈!

这里再来回想一个问题:上面我们在上传镜像之前对自己的镜像打了tag,为什么要这么做?
在下载自己上传的镜像,相信你已经想到了,如果不加上自己账户名的话,那么大家都上传,要是遇到同名的镜像咋办!下载该下载谁的!加上自己的用户名,就是起一个namespace的作用,类似java里的包名作用。用户名是不会重复的,因为你注册的时候,保证了你的用户名具有唯一性。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26909.html

相关文章

  • Docker入门(一)用hello world入门docker

    摘要:初识是什么是一个开源的应用容器引擎,基于语言并遵从协议开源。容器是完全使用沙箱机制,相互之间不会有任何接口更重要的是容器性能开销极低。命令为,如下由此可知,我们新打包的镜像的为。登录账号再输入自己的账号密码即可。 初识Docker Docker是什么?   Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从Apache2.0协议开源。  Docker 可以让开发者打包他们的...

    tolerious 评论0 收藏0
  • docker入门概览

    摘要:至于很具体的操作指令,比如怎么安装,怎么和来跑一个简单的,请参考官方文档部分的或者也可参考文末的一些参考资料参考资料官方文档入门教程系列简明教程使用演示中文系列资源从入门到实践作者更多文章个人网站 docker入门概览 标签 : docker [TOC] 本文对docker进行大致介绍,包括概述,安装,简单使用,架构,基本原理等方面 写在前面 本文是自己学习docker的一个记录...

    yy13818512006 评论0 收藏0
  • Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上

    摘要:入门系列之一在一个容器里运行指定的应用入门系列之二使用制作包含指定应用的镜像本文我们会介绍如何将这个本地制作好的镜像发布到,让全世界其他爱好者能够使用您的镜像。首先您得在上注册一个帐号然后创建一个新的,用于存放镜像。 这个系列的前两篇文章,我们已经把我们的应用成功地在Docker里通过nginx运行了起来,并且用dockerfile里制作好了一个镜像。 Docker入门系列之一:在一...

    maochunguang 评论0 收藏0
  • 不正宗 docker 入门教程-启动一个容器(1/3)

    摘要:从命名上就知道这是一篇简单粗暴的新手入门教程,为什么要简单粗暴我认为有自学能力的人帮他入门就够了,不能自学的一时半会儿也教不会,不符合入门教程的初衷,建议出门左拐去找找视频教程本章目标大概了解是个什么玩意知道常用的指令参数能启动一个容器不然 从命名上就知道这是一篇简单粗暴的docker新手入门教程, 为什么要简单粗暴? 我认为有自学能力的人帮他入门就够了, 不能自学的一时半会儿也教不会...

    YorkChen 评论0 收藏0
  • 这是一次 docker 入门实践

    摘要:前言其实接触也有一段时间了,但是一直没有做下总结,现在网上关于的介绍也有很多了,本着好记性不如烂笔头的原则,还是自己再记录一波吧。实现目标安装探索基本概念及用法环境准备位,内核版本不低于安装以下命令均需在权限下执行。 showImg(https://segmentfault.com/img/remote/1460000017894270?w=538&h=344); 前言 其实接触 do...

    ashe 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<