Docker入门教程(二)命令

【编者的话】DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能。

Docker系列教程的第一篇文章中,我们了解了Docker的基础知识,知道了它是如何工作以及如何安装的。在这篇文章中,我们将学习15个Docker命令,并通过实践来学习它是如何工作的。

首先,让我们通过下面的命令来检查Docker的安装是否正确:

 

docker info 


如果没有找到这条命令,则表示Docker安装错误。如果安装正确,则会输出类似下面的内容:

 


到这一步Docker里还没有镜像或是容器。所以,让我们通过使用命令预先构建的镜像来创建来一个:

 

 

sudo docker pull busybox

 


BusyBox是一个最小的Linux系统,它提供了该系统的主要功能,不包含一些与GNU相关的功能和选项。

下一步我们将运行一个“Hello World”的例子,我们暂且叫它“Hello Docker”吧。

 

 

docker run busybox /bin/echo Hello Docker

 


现在,让我们以后台进程的方式运行hello docker

 

 

sample_job=$(docker run -d busybox /bin/sh -c "while true; do echo Docker; sleep 1; done")

 


sample_job命令会隔一秒打印一次Docker,使用docker logs可以查看输出的结果。如果没有给这个job起名字,那这个job就会被分配一个id,以后使用命令例如docker logs查看日志就会变得比较麻烦。

运行docker logs命令来查看job的当前状态:

 

 

docker logs $sample_job


所有Docker命令可以用以下命令查看:

 

docker help


名为sample_job的容器,可以使用以下命令来停止:

 

docker stop $sample_job


使用以下命令可以重新启动该容器:

 

docker restart $sample_job


如果要完全移除容器,需要先将该容器停止,然后才能移除。像这样:

 

docker stop $sample_job
docker rm $sample_job


将容器的状态保存为镜像,使用以下命令:

 

docker commit $sample_job job1


注意,镜像名称只能取字符[a-z]和数字[0-9]。

现在,你就可以使用以下命令查看所有镜像的列表:

 

docker images


我们之前的Docker教程中,我们学习过镜像是存储在Docker registry。在registry中的镜像可以使用以下命令查找到:

 

docker search (image-name)


查看镜像的历史版本可以执行以下命令:

 

docker history (image_name)


最后,使用以下命令将镜像推送到registry:

 

docker push (image_name)


非常重要的一点是,你必须要知道存储库不是根存储库,它应该使用此格式(user)/(repo_name)

 

 

这都是一些非常基本的Docker命令。在我们Docker教程系列的第六章,我们将讨论如何使用Docker运行Python的Web应用程序,以及一些进阶的Docker命令。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
什么是Docker Docker 最初是dotCloud 公司创始人Solomon Hykes 在法国期间发起的一个公司内部项目, 它是基于dotCloud 公司多年云服务技术的一次革新,并于2013 年3 月以Apache 2.0 授权 协议开源,主要项目代码在GitHub 上进行维护。Docker 项目后来还加入了Linux 基金会, 并成立推动开放容器联盟(OCI)。 Docker 自开源后受到广泛的关注和讨论,至今其GitHub 项目已经超过4 万6 千个星标和一 万多个fork。甚至由于Docker 项目的火爆,在2013 年底,dotCloud 公司决定改名为 DockerDocker 最初是在Ubuntu 12.04 上开发实现的;Red Hat 则从RHEL 6.5 开始对 Docker 进行支持;Google 也在其PaaS 产品中广泛应用DockerDocker 使用Google 公司推出的Go 语言进行开发实现,基于Linux 内核的 cgroup,namespace,以及AUFS 类的Union FS 等技术,对进程进行封装隔离,属于操作 系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容 器。最初实现是基于LXC,从0.7 版本以后开始去除LXC,转而使用自行开发的 libcontainer,从1.11 开始,则进一步演进为使用runC 和containerd。 Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极 大的简化了容器的创建和维护。使得Docker 技术比虚拟机技术更为轻便、快捷。 下面的图片比较了Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件 后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程 直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比 传统虚拟机更为轻便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值