镜像

拉取镜像(下载镜像)

镜像是层次型的,拉取的时候会按照各层分别拉取。
每一个镜像都有自己的散列值,用来唯一标记一层镜像,可以用来判断本地是否已经拉取过此镜像层,如果已经拉取,则直接使用。

docker image pull centos:7      #拉取镜像centos:7

输出:
7: Pulling from library/centos #
ab5ef0e58194: Pull complete #先下载压缩包,再解压,最后显示Pull complete
Digest: sha256:4a701376d03f6b39b8c2a8f4a8e499441b0d567f9ab9d58e4991de4472fb813c #镜像的散列值
Status: Downloaded newer image for centos:7
docker.io/library/centos:7
[root@localhost ~]# docker image pull nginx
Using default tag: latest
latest: Pulling from library/nginx
68ced04f60ab: Pull complete #这里代表这个镜像那个有三层
28252775b295: Pull complete
a616aa3b0bf2: Pull complete
Digest: sha256:2539d4344dd18e1df02be842ffc435f8e1f699cfc55516e2cf2cb16b7a9aea0b
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

查看镜像

[root@localhost ~]# docker image ls     #查看所有镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 6678c7c2e56c 2 weeks ago 127MB
centos 7 5e35e350aded 4 months ago 203MB #解释
#IMAGE ID:镜像的ID(唯一标识镜像), 如果两个镜像的ID 相同, 说明它们实际上指向了同一个镜像 #参数
-a #显示所有镜像(包括中间层镜像)
-q #只显示IMAGE ID
docker images       #和docker image ls一样
[root@localhost ~]# docker image history 5e35       #查看镜像构建历史
IMAGE CREATED CREATED BY SIZE COMMENT
5e35e350aded 4 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 4 months ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> 4 months ago /bin/sh -c #(nop) ADD file:45a381049c52b5664… 203MB
  • 在Docker中,镜像和容器都有自己的散列值,我们输入前面几个散列值既可操作这个镜像和容器。如上例中的5e35
docker inspect 5e35     #查看镜像或容器的详细信息
docker search centos      #在仓库中搜索centos的镜像
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5892 [OK]
ansible/centos7-ansible Ansible on Centos7 128 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 114 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 111 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 71
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 58 [OK] #解释:
#NAME:镜像名
#DESCRIPTION:代表镜像描述
#STARS:标星数(标星数越大代表越多人关注) #参数:
docker search --filter=stars=100 centos #只显示100星以上的镜像

修改镜像tag

docker image tag centos:7 centos:eagle      #将centos:7的tag改为centos:eagle

删除镜像

docker image rm centos:7    #删除镜像centos:7

导入导出镜像

  • 导出
docker image save -o /root/centos_7.tar centos:7
  • 导入
docker image load -i centos_7.tar

容器

容器是一个动态的,是根据镜像启动的。就好像一个应用。

从一个例子入门
docker run centos:7 echo 'Hello world'      #根据镜像centos:7启动一个容器
#默认前台启动,输出'Hello world'之后退出

通常情况下,会运行一个后台程序:如nginx,我们希望容器后台运行:

[root@localhost ~]# docker container run -d -it centos:7        #根据镜像centos:7后台运行容器
d29b0344b210bec7d251beb30a392c4d9bf384a8e8a81ab22eaa9d86ca88c6ba #容器的散列值,唯一标记该容器 #参数解释:
-d #后台运行
-it #分配一个交互界面(否则无法进入)
docker exec -it d29b bash       #进入容器d29b

#参数解释:
-it #分配一个交互界面(否则无法进入)
bash #使用bash进行交互
  • 退出容器使用命令exit
运行容器
docker container run -d -it centos:7 bash
-it #分配一个交互界面(否则无法进入)(通常和参数bash一起用)
bash #使用bash进行交互(通常和参数-it一起用)
--name mycentos #给容器命名为mycentos
-h fight #设置容器主机名
-d #后台运行(可使用-it前台运行),并返回ID
--rm #运行结束之后删除容器
--privileged #给予特权
停止容器
docker container stop 9f4s	#不会删除存储层
启动容器
docker container start d29b     #启动
docker container restart d29b #重启
删除容器
docker container rm 9f4s    #删除一个已经退出的容器
-f #强制删除一个容器(即使正在运行)
查询容器
docker container ls     #查看Up状态的容器
-a #查看所有容器(包括退出的容器)
-q #只显示容器id
docker container inspect 04b7 #查看容器的详细信息

Docker网络管理

容器默认连接到docker0这个网段(可以使用ip a查看)

  • 容器网络设置
--network	#指定网络(默认docker0)
--ip #指定ip(docker0不支持指定)
  • 容器端口映射
docker container run --name web1 -p 8080:80 -d nginx    #将本机的8080端口 映射到 容器的80端口
firewall-cmd --add-port=8080/tcp
firewall-cmd --add-port=8080/tcp --per
#测试:http://192.168.191.131:8080/ (替换成你的CentOS的地址)
  • 其他网络参数
-p 192.168.159.129::80/udp	#随机分配一个端口,并指定协议
-P #随机端口映射
--dns 11.11.11.11 #指定容器的DNS服务器

导出导入容器

docker container export -o /root/centos_eagle.tar 088c      #导出容器
docker import centos_eagle.tar #导入容器(导入后成为一个镜像,没有名字,也没有tag,可以使用tag命令修改)

17-Docker镜像和容器操作的更多相关文章

  1. docker镜像和容器的导出导入

    本文介绍docker镜像和容器的导入导出,用于迁移.备份.升级等场景.主要用到export.import.save.load四个方法. 原文地址:代码汇个人博客 http://www.codehui. ...

  2. Docker镜像和容器

    本节内容: 安装Docker 卸载docker 镜像基本操作 容器基本操作 一.安装Docker Docker 对 Linux 内核版本的最低要求是3.10,如果内核版本低于 3.10 会缺少一些运行 ...

  3. docker镜像与容器

    目录 docker镜像与容器 概述 分层存储 镜像与容器 删除镜像与容器 将容器中的改动提交到镜像 慎用 docker commit--构建镜像推荐使用dockerfile docker镜像与容器 概 ...

  4. 三、Docker镜像的相关操作

    原文:三.Docker镜像的相关操作 一.查看本地镜像: docker images 二.使用某个镜像来运行容器: docker run -t -i xxxx(镜像名):xx.xx(版本,不带即最新) ...

  5. docker系列四之docker镜像与容器的常用命令

    docker镜像与容器的常用命令 一.概述   docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人 ...

  6. Docker容器化【Docker镜像与容器相关命令】

    # Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...

  7. docker 入门(docker 镜像 、容器、仓库)

    一.关于docker 镜像 .容器.仓库之间的关系 镜像(Image): 类似于虚拟机 的镜像 容器(Container): 类似于操作系统(或者说是独立的软件), 由镜像可以创建大量的容器. 仓库( ...

  8. 【docker专栏8】使用IDEA远程管理docker镜像及容器服务

    使用命令行的方式管理服务器镜像及容器是运维人员最常用的方式,但是有的时候我们不得不远程操作docker或者是面向对docker并不熟悉的技术人员提供能力(配置管理员.测试人员),这种情况下图形界面就有 ...

  9. 快速批量删除 docker 镜像或容器

    原文:快速批量删除 docker 镜像或容器 点击在我的博客 xuxusheng.com 中查看,有更好的排版哦~ docker 本身并没有提供批量删除的功能,当有大量的镜像或者容器需要删除的时候,手 ...

  10. Docker镜像与容器的常用操作

    Docker镜像加速配置:Docker镜像常用操作:Dcoker容器常用操作. 镜像加速器 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器.国内很多云服务商都提供了国内加 ...

随机推荐

  1. VisualStudio 使用 FastTunnel 辅助搭建远程调试环境

    有时候需要远程调试一些用户问题,期望能使用本机的 Visual Studio 开发环境,调试远程的用户的设备上的应用.这时会遇到的一个问题是如何让本机的 Visual Studio 可以连接上远程的用 ...

  2. 2019-8-31-NuGet-如何设置图标

    title author date CreateTime categories NuGet 如何设置图标 lindexi 2019-08-31 16:55:58 +0800 2019-4-27 17: ...

  3. 前端之JavaScript基础学习

    一.JS代码引入以及基本代码规范 # 1.js代码书写格式 <script> ....js的代码 </script> #2.script标签写在页面那个位置 1)页面的head ...

  4. 野火 STM32MP157 开发板 UBOOT 编译烧写

    一.环境 编译环境:Ubuntu 版本:20.4.1 交叉编译工具:arm-none-eabi-gcc 版本:10.3.1 开发板:STM32MP157 pro 烧写软件:STM32CubeProgr ...

  5. Sermant在异地多活场景下的实践

    本文分享自华为云社区<Sermant在异地多活场景下的实践>,作者:华为云开源. Sermant社区在1.3.0和1.4.0版本相继推出了消息队列禁止消费插件和数据库禁写插件,分别用于解决 ...

  6. Django Admin后台管理:高效开发与实践

    title: Django Admin后台管理:高效开发与实践 date: 2024/5/8 14:24:15 updated: 2024/5/8 14:24:15 categories: 后端开发 ...

  7. Swift实现判断目录下是否存在指定文件功能

    本文主要讲解以下这段名为 isDataJsonFilePathExists 的私有函数的 Swift 代码实现细节,该函数的作用是检查指定文件或文件夹是否存在,其返回值类型为 Bool 类型,如果存在 ...

  8. (二)Redis 数据类型与结构

    1.值的数据类型 Redis "快"取决于两方面,一方面,它是内存数据库,另一方面,则是高效的数据结构.Redis 键值对中值的数据类型,也就是数据的保存形式有5种:String( ...

  9. 西门子PLC设备如何接入AIRIOT物联网低代码平台 ?

    西门子PLC设备广泛应用于工业控制领域,高性能和稳定是它最大的优势.下面我们要把西门子300 1200 1500 PLC设备连接到AIRIOT物联网低代码平台,具体操作如下所示: 西门子驱动配置(配套 ...

  10. Java基础 韩顺平老师的 常用类 的部分笔记

    459,八大Wrapper类 包装类的分类 1) 针对八种基本数据类型相应的引用类型-包装类 2) 有了类的特点, 就可以调用类中的方法. 460,装箱和拆箱 package com.hspedu.W ...