docker镜像与容器的常用命令

一.概述

docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解。镜像,我们从字面意思上看,镜子里成像,我们人站在镜子面前,在镜子中会呈现一个完整的我们(包括我们的着装、表情、发型等等)。那么在软件领域的镜像是指对数据按照一定的格式的一个完整的拷贝;容器是镜像运行时的实体,比如说镜像是个类,当没有被加载的时候,它是存放在我们的硬盘上的,而容器是对象,对象只有在程序运行的时候才会被创建,并且一个类可以创建N多个对象,对应到我们的镜像与容器,一个镜像可以用于创建多个容器,每个容器运行在各自的namespace中间。

二.镜像的操作

在本节笔者只会粗略的说一下镜像,本文的重点在于讲解容器,因为容器一定要用到镜像,所有我们又不得不提。后续会有专门的篇章来介绍镜像。

2.1 镜像仓库的配置

所谓的镜像仓库就是镜像集中存放的位置,docker默认的镜像仓库地址是 https://hub.docker.com,由于该地址服务器不在内地,访问的速度可能会有一定的影响。所以我们会经常将docker默认的镜像仓库换成阿里巴巴或者163的镜像仓库地址,以便加快我们的访问速度,本小节我们以阿里巴巴的镜像仓库为例为大家讲解。

B.进入到阿里云控制台,选择“容器镜像服务”

C.进入到“镜像加速器”,在右侧会出现“加速器地址”以及如何配置加速器地址

D.如果你按照笔者《docker系列三之docker的安装》来安装docker,在 /etc/docker/目录下是没有 daemon.json文件的,所有你要进入到 /etc/docker/ 目录下执行 touch  daemon.json  命令创建 daemon.json文件,如下图所示:

E.在新创建的daemon.json文件中加入如下内容

{"registry-mirrors": ["https://zbhswmwr.mirror.aliyuncs.com"]

}

F.执行如下命令

sudo systemctl daemon-reload #重新加载守护进程

sudo systemctl restart docker #重启docker

2.2 docker的信息和帮助命令

docker -v #查看docker的版本信息

docker info#查看docker的基本信息,例如多少镜像,多少个容器等

docker help#查看docker命令

2.3 docker镜像的基本命令

A.查看docker本地有多少镜像:docker images 或者 docker image ls

B.拉取镜像仓库的某个镜像:docker pull 镜像名:tag,例如:docker pull hello-world:linux

C.只查看镜像的ID: docker images -aq

D.删除一个镜像: docker rmi 镜像名[:tag]  或者 docker rmi 镜像ID    注: 如果本地镜像文件镜像名唯一,可以不用加tag

三.容器的基本命令

A. 器的启动:docker run 镜像名:tag

B.查看正在运行的容器:docker container ls 或者 docker ps 或者 docker ps -n 2

说明:docker ps -n 2表示查看最近运行或者运行过的两个容器。

C.查看所有的容器,包括已经停止了的容器:docker container ls -a 或者 docker ps -a

D.以交互的方式启动容器,例如我们启动一个centos容器:docker run -i -t centos

注:-t的是宿主机分配一个终端,并将该终端绑定到标准的输入上;-i让容器的标准输入保持打开状态。二者都是联合在一起使用的。

如果以上述的方式启动centos容器,那么我们如何回到我们的宿主机呢?有两种方式:

a. 执行 exit 命令,该命令会关闭容器,然后退出。

b.按住ctrl + p + q, 容器不关闭,只是退出。

E.以后台进程的方式启动容器:docker run -d centos

细心的你一定会发现,我们以守护进程的方式启动容器后,容器却已经退出了(status为Exited)。原因是因为docker容器启动后必须要有一个前台进程,说白了就是一直要有事情干,那么怎么能让他有事干了,我们可以开启一个一直挂起的命令,例如:top tail,否则就会自动退出。那么有什么解决方法呢?其实这个问题解决的方法笔者搜集到三种(都是在网上查找的):

a.以交互的方式启动容器,然后通过ctrl + p + q 不关闭容器退出容器,这种方式在上面已经给大家提到过:

docker run -it centos

b.通过一个死循环间歇性的不停的输出一个字符串 :

docker run -d centos /bin/sh -c "while true;do echo hello world;sleep 2;done"

c.通过我们上面提到过的top命令的方式开启一个前台进程,让容器有事情干:

docker run -d centos /usr/bin/top -b

F.容器的停止,容器的停止有两种方式:1.docker stop 容器ID;2.docker kill 容器ID。方式一是一种平滑、优雅的方式关闭容器;方式二是暴力的方式关闭容器。

G.删除容器:docker rm [-f] 容器ID。-f表示强制删除,正在运行的容器用该命令。

H.查看容器的日志:docker logs -t -f 容器ID。-t是显示日志的时间,-f是监视日志的增长。

I.重新进入已经退出的容器:docker attach 容器ID

J.不进入到容器,直接通过命令操作容器:docker exec 容器ID ls -l /   #查看容器中根目录下有哪些目录或者文件

docker 一起性重启所有镜像_docker系列四之docker镜像与容器的常用命令相关推荐

  1. docker 一起性重启所有镜像_Docker常见问题总结

    镜像相关 如何批量清理临时镜像文件? 答:可以使用 docker image prune 命令. 如何查看镜像支持的环境变量? 答:可以使用 docker run IMAGE env 命令. 本地的镜 ...

  2. docker 制作本地镜像_Docker系列-(2) 镜像制作与发布

    上篇文章引入了Docker的基本原理和操作,本节文章主要介绍如何制作Docker镜像和发布. 镜像文件结构 Docker镜像的本质是一系列文件的集合,这些文件依次叠加,形成了最后的镜像文件,类似于下图 ...

  3. docker 查看镜像_Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指!...

    来自小洋人最HAPPY投稿 一.Docker简介 Docker是开源应用容器引擎,轻量级容器技术. 基于Go语言,并遵循Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一 ...

  4. docker 制作本地镜像_docker如何制作自己的镜像

    一.准备工作 准备一个用来制作镜像的容器.这里我们使用centos安装apache的容器.容器的制作方法如下 # 1.使用centos启动一个交互式容器 docker run -it centos:l ...

  5. Docker中操作镜像和容器的常用命令

    场景 CentOS7中Docker的安装与配置: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119028701 在上面将Doc ...

  6. docker基础用法及镜像和容器的常用命令大全

    1. docker 体系架构 Docker 采用了 C / S 架构,包括客户端和服务端.Docker 守护进程作为服务端接受来自客户端的请求,并处理这些请求(创建.运行.分发容器).客户端和服务端既 ...

  7. docker 容器的常用命令及配置

    容器目录映射 docker run -it -v 宿主机的目录:容器的目录 --privileged --name myjava java bash // -v参数可以有多个// --privileg ...

  8. docker 容器 exited_docker常用命令整理

    docker常用命令整理 代码狂魔 • 5 天前 • 技术积累 • 14 • 0 前面已经把docker是什么和 docker怎么安装已经写了,现在我将常用命令做一个整理,方便日后查阅 常用命令 do ...

  9. 在docker上调用宿主机硬件_Docker精华问答:Docker与虚拟机的区别?| 技术头条

    Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署.测试和分发都变得前所未有的高效和轻松! 1 ...

最新文章

  1. GAD计算机辅助诊断,GAD-2和GAD-7在心血管门诊焦虑筛查中的信度与效度分析
  2. 《Hadoop权威指南》第二章 关于MapReduce
  3. 模板:什么是Traits
  4. java电影票选座_jQuery实现电影票选座效果手机端代码
  5. BZOJ 2434 阿狸的打字机(ac自动机+dfs序+树状数组)
  6. PetShop的系统架构设计
  7. CNware防DDOS攻击介绍--云宏
  8. DupanTools第三方不限速下载工具
  9. 单片机原理及其应用试题(含答案)
  10. Python 树莓派 引脚
  11. flash视频的param属性解释
  12. C# 客户端使用Excel批量导入数据
  13. SparkStreaming + LogisticRegression 实现路况预测
  14. 小区物业专属公众号管理办法
  15. 地图服务 WMS WFS WCS TMS
  16. 浅谈一下线程中synchronized块、wait,notify的用法
  17. c语言空格影响编译吗,C语言的空格问题
  18. java打包把依赖也打进去_maven打包时把依赖的jar包打进去
  19. 电话号码的数字组合(Java)
  20. 水到渠成建设路肩等设施路缘石成型机来出力

热门文章

  1. 计算机桌子用英语怎么画,如何用AI绘制一个简单的办公桌?
  2. 阿里市值5400亿美元的启示:核心团队是剩下来的,不是选出来的
  3. 一箭四星 中国成功发射“吉林一号”光谱01/02星及两颗小卫星
  4. USB总线-Linux内核USB3.0设备控制器复合设备之USB gadget configfs分析(七)
  5. uniapp 检测android 是否开启GPS功能
  6. 爬取豆瓣网app软件数据
  7. 如何使用FastStone Capture无缝拼接两张图片?
  8. python利用twilio模块给自己发短信
  9. 中国地区表-mysql-包含钓鱼岛-2019年10月更新-[2]
  10. MongoDB 自学笔记(入门级教程)