美文网首页程序员
Docker学习笔记(容器篇)

Docker学习笔记(容器篇)

作者: 丁明威 | 来源:发表于2016-04-20 14:12 被阅读1596次

Docker是一个开源的容器运行和管理引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署。既可以在物理服务器上运行,也可以在虚拟机上运行。容器本身由多个只读层(容器镜像)加上一个读写层构成。如下图所示:

本文主要围绕容器和容器的相关操作命令进行描述。

Docker可以在一台物理机上同时运行多个容器而不互相影响。与传统的虚拟化技术不同,传统的虚拟化技术是将一台物理机模拟成多个互不影响的虚拟机,各个虚拟机都是独立而完整的操作系统,资源使用和较多。而一台物理机上的多个Docker容器是共享宿主机的操作系统,从而资源使用较少。除此之外,Docker容器还具有以下特点:

启动速度快:可以秒级启动

应用在沙箱内独立运行,相互没有影响

性能开销小:几乎没有额外资源开销

天然具备开发,运维一体部署的特性。

所以,Docker通常用于如下场景:

Web应用的自动化打包和发布。

自动化测试的持续集成和发布。

复杂应用的自动编排部署。

构建自身的的PaaS环境。

Docker的核心概念主要包括:容器,镜像,仓库。如下图所示:

Docker的整体架构如下:

Docker的命令状态转换图如下:

与容器相关的操作命令如下:

docker version  #查看宿主机上的Docker版本信息

docker info # 查看Docker宿主上的容器详细信息,包括镜像和容器数量。

docker ps [options] # 查看当前Docke宿主机上的容器信息

主要的参数如下:

-a 列出所有的容器,包括停止和死亡状态(dead)的容器。

-f []列出满足过滤条件的容器

-l 仅列出最新创建的一个容器

-q 仅列出容器ID

docker create [options] image:tag #基于某个镜像创建一个容器而不启动

docker start CONTAINER_ID ... # 启动一个或多个容器,容器ID之间用空格隔开。

docker restart CONTAINER_ID ... #重启一个或多个容器,容器ID之间用空格隔开。

docker pause|unpause CONTAINER_ID ...#暂停|恢复一个或多个容器进程,容器ID之间用空格隔开。

docker kill CONTAINER_ID ...#杀掉一个或多个容器进程,容器ID之间用空格隔开。

docker stop CONTAINER_ID ...# 停止一个或多个容器,容器ID之间用空格隔开。

docker run [options] image:tag [ commands ] 

# 基于某个镜像运行一个容器。等同于[docker pull]+docker create + docker start三个命令的集合。基本原理如下:如果当前宿主机的本地没有指定的镜像(imageName:imageTag),需要利用docker pull 从镜像仓库(默认Docker Hub)中拉取该镜像 ;如果有指定的镜像,则运行docker create 命令进行容器的创建,如果创建成功,则执行docker start 命令进行启动;如果失败,则返回容器运行失败。

docker rm [options] CONTAINER_ID...

#删除一个或者多个容器,默认运行状态的容器不能删除,可以通过增加 -f 参数来进行强制删除。此外,-l参数移除容器之间的网络关联;-v参数移除容器关联的数据卷。批量操作宿主机上的容器可以用如下命令来实现:

批量停止容器:docker stop $(docker ps -q)

批量重启容器:docker restart$(docker ps -q)

批量删除容器:docker rm [-f] $(docker ps -a -q)

批量杀掉容器进程:docker kill [-f] $(docker images -q)

docker attach CONTAINER_ID

#进入到指定ID的容器中,attach命令弹出的窗口是同步显示的,一个窗口阻塞之后,其他窗口也无法进行操作。执行exit或者Ctrl+c 退出后,容器也随之停止。

docke exec -it CONTAINER_ID /bin/bash 

#以伪终端的方式和指定的容器进行交互,输入exit退出后,当前容器仍然可以继续运行。

docker login #登录到Docker Hub中

docker logout #退出Docker Hub。

docker logs CONTAINER_ID #查看指定容器的输入日志。

下一篇我们将就Docker 镜像以及对镜像的详细操作来进行描述。

相关文章

  • Docker学习笔记(容器篇)

    Docker是一个开源的容器运行和管理引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者...

  • Docker学习笔记及面试题

    深入浅出Docker学习笔记 Docker引擎 Docker引擎:用来运行和管理容器的核心文件模块化(基于开放容器...

  • Docker 笔记

    Docker 笔记来源:https://docs.docker.com/ 和 《docker 容器和容器云》 此笔...

  • Docker笔记之总结

    Docker笔记之Docker初体验Docker笔记之容器Docker笔记之网络管理Docker笔记之数据卷Doc...

  • Docker学习笔记(一)Docker初体验

    Docker学习笔记(一)Docker初体验 什么是Docker Docker是一个虚拟环境容器,可以将开发环境、...

  • docker使用技巧记录

    随笔记录,不定时更新 安装docker 容器相关 删除所有容器docker rm $(docker contain...

  • 容器Docker学习系列十~高级操作

    这一篇算是我们Docker容器命令的最后一篇文章了,基础学习好了我们再去学习Docker中更高级的特性,用好容器,...

  • 2019-07-05

    Docker 学习笔记 - 端口映射与容器互联 作者:马燕龙 时间:2017-11-06 分类:Docker 一、...

  • 2019-06-02_Docker微服务学习笔记1

    Docker微服务学习笔记1 1.Docker概述 首先,大家需要明确一点,Docker容器不是虚拟机。 2014...

  • Docker学习(三)docker容器操作

    上一篇:Docker学习(二)docker镜像操作容器是基于镜像创建的,说白了把一个镜像运行起来就是容器 查看容器...

网友评论

    本文标题:Docker学习笔记(容器篇)

    本文链接:https://www.haomeiwen.com/subject/lhwzlttx.html