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命令。

原文链接:Part 2: The 15 Commands(翻译:田浩浩 审校:李颖杰)

Docker入门教程(二)命令的更多相关文章

  1. Docker入门教程(六)另外的15个Docker命令

    Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...

  2. [转帖]Docker 入门教程

    Docker 入门教程 http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html 自己学的还是太肤浅啊.. 作者: 阮一峰 日期: 201 ...

  3. Docker入门教程(九)10个镜像相关的API

    Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...

  4. Docker入门教程(八)Docker Remote API

    Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...

  5. Docker入门教程(七)Docker API

    Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和 ...

  6. Docker入门教程(五)Docker安全

    Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通 ...

  7. Docker入门教程(四)Docker Registry

    Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...

  8. Docker入门教程(三)Dockerfile

    Docker入门教程(三)Dockerfile [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第三篇,介绍了Dockerfile的语法,DockerOn ...

  9. Docker入门教程(一)介绍

    http://dockone.io/article/101 Docker入门教程(一)介绍 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了 ...

随机推荐

  1. DateTime.Now.ToString() 用法

    //2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString(& ...

  2. 50-ln 简明笔记

    为文件建立链接 ln [options] existing-file [new-link] ln [options] existing-file-list directory ln可以为一个或多个文件 ...

  3. webpack入坑之旅(一)不是开始的开始

    最近学习框架,选择了vue,然后接触到了vue中的单文件组件,官方推荐使用 Webpack + vue-loader构建这些单文件 Vue 组件,于是就开始了webpack的入坑之旅.因为原来没有用过 ...

  4. hibernate用setResultTransformer转换

    当你用hibernate查出数据,但是类型不是原来的类型怎么办,新增的实体类还可以用,query.setResultTransformer(Transformers.aliasToBean(AA.cl ...

  5. Java--笔记(2)

    11.根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态. 死锁的四个必要条件: 1)互斥条件(Mutual ...

  6. 在Windows .NET平台下使用Memcached

    网上关于Memcached的文章很多,但据我观察,大多是互相转载或者抄袭的,千篇一律.有些则是直接整理的一些超链接然后贴出来.那些超链接笔者大概都进去看了,其实关于Memcached的中文的技术文章, ...

  7. java-io-FileInputStream与FileOutputStream类

    本文转载这里FileInputStream和FileOutputStream类需要注意的问题:  1.FileInputStream和FileOutputStream类分别用来创建磁盘文件的输入流和输 ...

  8. jquery datatable(二)

    <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  9. IOS-App installation failed原因及解决方法

    在用真机调试的时候,每次运行app都会弹出这个框,点击ok后,再次运行就没问题了.刚开始觉得没什么,无非就是多点几次,到后来,觉得这也很浪费时间,严重影响开发效率,在网上搜索了一遍后,决定将解决方案写 ...

  10. Android中对内存和外存的读写

    首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的. public ...