写在前面

细数当前最流行的技术莫过于容器化和人工智能了,而容器化技术能有今天的热度,Docker可谓功不可没。

让我们一起来回顾一下Docker

是什么?

  • 是一种虚拟化技术
  • 能够将应用程序自动部署到容器
  • 使用Go语言开源引擎
  • 能够非常方便的将我们的应用程序以及运行所以来的环境部署到开发,测试及生产环境。一次编译,随处可用

有什么优势?

  • 提供了简单轻量的建模方式
  • 职责的逻辑分离
  • 快速高效的开发生命周期
  • 让应用部署具备了高可移植性
  • 更方便的使用面向服务的架构

Docker的使用场景?

  • 使用Docker容器开发,测试,部署服务
  • 创建隔离的运行环境
  • 搭建测试环境
  • 构建多用户的平台即服务(PaaS)基础设施
  • 提供软件即服务(SaaS)应用程序
  • 高性能,超大规模的宿主机部署

常用命令

查看已安装的Docker版本

docker version

 

我们知道docker采用的是C/S架构的方式,所以我们可以看到一个是client端,一个是server端(守护进程)。

查看docker是否在运行以及所有状态的容器实例

docker ps  // 列出目前正在运行的containers

docker ps -a //列出所有的docker containers,包括没有运行的  

我们用下面的命令来尝试运行一个容器化的web server

docker run -d -p 80:80 --name webserver nginx  

如果nginx这个镜像在本地没有找到,docker就会自动从docker hub 上下载到本地并且运行在80端口,我们输入 http://localhost 就可以看到已经运行成功

如果我们不手动停止刚才的container的话,它就一直会运行。

docker stop webserver
docker start webserver

在docker安装成功之后会在机器上启动客户端,可以进行一些基础的设置

Docker命令从功能上来说分为下面几个部分:

容器生命周期管理

包含 run ,start/stop/restart , kill , rm , pause/unpause , create , exec ,以run命令举例,用它来创建并运行一个容器,语法如下:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

  • -d: 后台运行容器,并返回容器ID;

  • -i: 以交互模式运行容器,通常与 -t 同时使用;

  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

  • --name="nginx-lb": 为容器指定一个名称;

  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

  • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

  • -h "mars": 指定容器的hostname;

  • -e username="ritchie": 设置环境变量;

  • --env-file=[]: 从指定文件读入环境变量;

  • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

  • -m :设置容器使用内存最大值;

  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container:<name|id> 四种类型;

  • --link=[]: 添加链接到另一个容器;

  • --expose=[]: 开放一个端口或一组端口;

容器操作

包含 ps , inspect ,top , attach , events , logs , wait , export , port

docker ps [OPTIONS]

OPTIONS说明:

  • -a :显示所有的容器,包括未运行的。

  • -f :根据条件过滤显示的内容

  • --format :指定返回值的模板文件。

  • -l :显示最近创建的容器。

  • -n :列出最近创建的n个容器。

  • --no-trunc :不截断输出。

  • -q :静默模式,只显示容器编号。

  • -s :显示总的文件大小。

容器rootfs命令

包含 commit ,cp , diff

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]   //从容器创建一个新的镜像。

OPTIONS说明:

  • -a :提交的镜像作者;

  • -c :使用Dockerfile指令来创建镜像;

  • -m :提交时的说明文字;

  • -p :在commit时,将容器暂停。

镜像仓库

包含 login , pull , push , search

docker login [OPTIONS] [SERVER]   //登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

OPTIONS说明:

  • -u :登陆的用户名

  • -p :登陆的密码

本地镜像管理

包含 images , rmi , tag , build , history , save , import

docker images [OPTIONS] [REPOSITORY[:TAG]]  //列出本地镜像

OPTIONS说明:

  • -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)

  • --digests :显示镜像的摘要信息

  • -f :显示满足条件的镜像;

  • --format :指定返回值的模板文件;

  • --no-trunc :显示完整的镜像信息;

  • -q :只显示镜像ID。

info|version

显示docker系统相关信息

以上列出的只是其中的几个命令,详细命令可参考官网或者  docker --help 来查看

https://docs.docker.com/edge/engine/reference/commandline/docker/

写在最后

docker官方提供了很好的文档支持,社区也非常的活跃,非常易于学习。

容器虚拟化技术已然是未来的主流,应该是每个coder都需要去了解和学习的。

https://docs.docker.com/

Docker入门之常用命令的更多相关文章

  1. Docker 入门指南——常用命令

    前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...

  2. Docker入门以及常用命令

    目的: Docker入门 Docker简介 Centos7安装Docker Docker HelloWorld运行原理解析 阿里云镜像仓库配置 Docker常用命令 Docker基本命令 Docker ...

  3. docker入门及常用命令

    Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布 ...

  4. Docker的入门及常用命令

    Docker入门及常用命令 1. 各个容器之间是相互隔离状态: 这样减少了我们软件之间的影响. 2. docker是os层虚拟化架构的一种产品体现, os层虚拟化架构出来的操作系统需要和宿主机操作系统 ...

  5. Docker基础和常用命令

    Docker基础和常用命令 一,Docker 简介 1.1,什么是 Docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,nam ...

  6. docker 安装与常用命令与常用容器(containers)环境

    注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...

  7. Docker系列之常用命令操作手册

    目录 1.安装虚拟机 2.安装Docker 3.Docker镜像操作 4.Docker容器操作 Docker系列之常用命令操作手册 继上一篇博客Docker系列之原理简单介绍之后,本博客对常用的Doc ...

  8. Docker(2):快速入门及常用命令

    什么是Docker? Docker 是世界领先的软件容器平台.开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题.运维人员利用 Docker 可以在隔离容器中并行运行和管理 ...

  9. Docker三剑客之常用命令

    一.docker-machine 命令 说明 docker-machine create 创建一个 Docker 主机(常用-d virtualbox) docker-machine ls 查看所有的 ...

随机推荐

  1. js最常用正则表达式集合

    常用正则表达式合集:验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9] ...

  2. VFS四大对象之四-struct file

    继上一篇文章: http://www.cnblogs.com/linhaostudy/p/7428971.html 四.file结构体 文件对象:注意文件对象描述的是进程已经打开的文件.因为一个文件可 ...

  3. C# 知识回顾 - Lambda

    序 它是第十一个希腊字母,一个拥有失意.无奈.孤独.低调等含义的流行符号,也指示一款称为"半条命"的游戏. 不过,这次我所讲的是 C# 中的 Lambda. 目录 Lambda 简 ...

  4. HUST 1585 排队

    1585 - 排队 时间限制:1秒 内存限制:128兆 351 次提交 179 次通过 题目描述 BG站在一个有n个人的队伍中,但他并不知道他处于队伍中的哪个位置,他向前向后观察,只能断定他的前方有至 ...

  5. bzoj:1598: [Usaco2008 Mar]牛跑步

    Description BESSIE准备用从牛棚跑到池塘的方法来锻炼. 但是因为她懒,她只准备沿着下坡的路跑到池塘, 然后走回牛棚. BESSIE也不想跑得太远,所以她想走最短的路经. 农场上一共有M ...

  6. HDU1114Piggy-Bank(完全背包)

    Piggy-Bank Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  7. 2017ecjtu-summer training #7 POJ 2689

    Prime Distance Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18731   Accepted: 5006 D ...

  8. 获取Object对象的length

    所有JS程序猿(甚至不止JS)都知道,数组(Array)是有length的,通过length属性,可以很方便的获取数组的长度.可以说,只要使用到了数组,就必会使用到其length属性. 而Object ...

  9. 完整CentOS搭建OpenVPN服务详细教程

    一.介绍 1.定义 ① OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,最早由James Yonan编写.OpenVPN允许创建的VPN使用公开密钥.电子证书.或者用户名/密码来进行身份验证 ...

  10. java中强,软,弱,虚引用 以及WeakHahMap

    java中强,软,弱,虚引用  以及WeakHahMap   一:强软引用: 参考:http://zhangjunhd.blog.51cto.com/113473/53092/进行分析   packa ...