17-Docker镜像和容器操作
镜像
拉取镜像(下载镜像)
镜像是层次型的,拉取的时候会按照各层分别拉取。
每一个镜像都有自己的散列值,用来唯一标记一层镜像,可以用来判断本地是否已经拉取过此镜像层,如果已经拉取,则直接使用。
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镜像和容器操作的更多相关文章
- docker镜像和容器的导出导入
本文介绍docker镜像和容器的导入导出,用于迁移.备份.升级等场景.主要用到export.import.save.load四个方法. 原文地址:代码汇个人博客 http://www.codehui. ...
- Docker镜像和容器
本节内容: 安装Docker 卸载docker 镜像基本操作 容器基本操作 一.安装Docker Docker 对 Linux 内核版本的最低要求是3.10,如果内核版本低于 3.10 会缺少一些运行 ...
- docker镜像与容器
目录 docker镜像与容器 概述 分层存储 镜像与容器 删除镜像与容器 将容器中的改动提交到镜像 慎用 docker commit--构建镜像推荐使用dockerfile docker镜像与容器 概 ...
- 三、Docker镜像的相关操作
原文:三.Docker镜像的相关操作 一.查看本地镜像: docker images 二.使用某个镜像来运行容器: docker run -t -i xxxx(镜像名):xx.xx(版本,不带即最新) ...
- docker系列四之docker镜像与容器的常用命令
docker镜像与容器的常用命令 一.概述 docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人 ...
- Docker容器化【Docker镜像与容器相关命令】
# Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...
- docker 入门(docker 镜像 、容器、仓库)
一.关于docker 镜像 .容器.仓库之间的关系 镜像(Image): 类似于虚拟机 的镜像 容器(Container): 类似于操作系统(或者说是独立的软件), 由镜像可以创建大量的容器. 仓库( ...
- 【docker专栏8】使用IDEA远程管理docker镜像及容器服务
使用命令行的方式管理服务器镜像及容器是运维人员最常用的方式,但是有的时候我们不得不远程操作docker或者是面向对docker并不熟悉的技术人员提供能力(配置管理员.测试人员),这种情况下图形界面就有 ...
- 快速批量删除 docker 镜像或容器
原文:快速批量删除 docker 镜像或容器 点击在我的博客 xuxusheng.com 中查看,有更好的排版哦~ docker 本身并没有提供批量删除的功能,当有大量的镜像或者容器需要删除的时候,手 ...
- Docker镜像与容器的常用操作
Docker镜像加速配置:Docker镜像常用操作:Dcoker容器常用操作. 镜像加速器 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器.国内很多云服务商都提供了国内加 ...
随机推荐
- VisualStudio 使用 FastTunnel 辅助搭建远程调试环境
有时候需要远程调试一些用户问题,期望能使用本机的 Visual Studio 开发环境,调试远程的用户的设备上的应用.这时会遇到的一个问题是如何让本机的 Visual Studio 可以连接上远程的用 ...
- 2019-8-31-NuGet-如何设置图标
title author date CreateTime categories NuGet 如何设置图标 lindexi 2019-08-31 16:55:58 +0800 2019-4-27 17: ...
- 前端之JavaScript基础学习
一.JS代码引入以及基本代码规范 # 1.js代码书写格式 <script> ....js的代码 </script> #2.script标签写在页面那个位置 1)页面的head ...
- 野火 STM32MP157 开发板 UBOOT 编译烧写
一.环境 编译环境:Ubuntu 版本:20.4.1 交叉编译工具:arm-none-eabi-gcc 版本:10.3.1 开发板:STM32MP157 pro 烧写软件:STM32CubeProgr ...
- Sermant在异地多活场景下的实践
本文分享自华为云社区<Sermant在异地多活场景下的实践>,作者:华为云开源. Sermant社区在1.3.0和1.4.0版本相继推出了消息队列禁止消费插件和数据库禁写插件,分别用于解决 ...
- Django Admin后台管理:高效开发与实践
title: Django Admin后台管理:高效开发与实践 date: 2024/5/8 14:24:15 updated: 2024/5/8 14:24:15 categories: 后端开发 ...
- Swift实现判断目录下是否存在指定文件功能
本文主要讲解以下这段名为 isDataJsonFilePathExists 的私有函数的 Swift 代码实现细节,该函数的作用是检查指定文件或文件夹是否存在,其返回值类型为 Bool 类型,如果存在 ...
- (二)Redis 数据类型与结构
1.值的数据类型 Redis "快"取决于两方面,一方面,它是内存数据库,另一方面,则是高效的数据结构.Redis 键值对中值的数据类型,也就是数据的保存形式有5种:String( ...
- 西门子PLC设备如何接入AIRIOT物联网低代码平台 ?
西门子PLC设备广泛应用于工业控制领域,高性能和稳定是它最大的优势.下面我们要把西门子300 1200 1500 PLC设备连接到AIRIOT物联网低代码平台,具体操作如下所示: 西门子驱动配置(配套 ...
- Java基础 韩顺平老师的 常用类 的部分笔记
459,八大Wrapper类 包装类的分类 1) 针对八种基本数据类型相应的引用类型-包装类 2) 有了类的特点, 就可以调用类中的方法. 460,装箱和拆箱 package com.hspedu.W ...