Docker学习笔记

Docker篇之镜像标签tag 日常线上活动中,当我们对系统进行开发时,做容器化管理,因为每一个版本不同,可能随着业务量的产生,需求的迭代更新,不同版本所需要的环境不同。 因此,为了满足这样的问题,我们通常做的就是对每一个版本来打标签。 当某个场景需要用到哪个版本时,我们可以随时切换,只需要切换版本即可。 在Docker中实现该功能,可用于给镜像来打标签。 1、当正式运行容器时,使用的镜像如果本地中不存在,docker就会自动从docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。 当然也可以进行设置镜像下载源 国 阅读详情

Docker是什么?

Docker是一个开源的应用容器引擎,基于GO语言编写并遵从Apache 2.0开源协议。
Docker可以让应用开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何的Linux服务器上运行。容器技术基于进程的虚拟化,相比于虚拟机的硬件设备虚拟化来说,对系统的资源消耗更低,容器启动速率可以达到秒级。同时容器基于Cgroup技术隔离,容器之间互不干扰,安全性得到保障。

Docker的应用场景

  • Web应用的自动化打包和发布
  • 自动化测试和持续集成、发布

Docker架构

docker包含镜像、容器、镜像仓库三个基本概念,容器的创建、运行、更新、销毁也都围绕这三个要素展开。

  • 镜像(Image):Docker镜像相当于一个root文件系统,包含了应用运行所需要的软件包以及依赖环境,比如官方镜像nginx就包含了完整的nginx服务运行需要的应用软件、系统环境、配置文件。
  • 容器(Container):容器是镜像运行时的实体,容器运行时所承载的应用也正常运行了并可以对外提供服务。容器可以被创建、启动、停止、删除、暂停等。
  • 镜像仓库(Repository):镜像的集合,用于保存所有的镜像。应用开发者可以按需从镜像仓库拉取镜像,也可以将自定义镜像上传到镜像仓库用于后续使用。
    在这里插入图片描述

Docker安装

官方安装脚本自动安装

安装命令:

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
systemctl restart docker  #启动docker

手动安装

参考链接:https://www.runoob.com/docker/centos-docker-install.html

Docker管理命令

命令帮助:

[root@ecs-43447130 docker]# docker

在这里插入图片描述
也可以通过命令docker command --help 更深入的了解指定的docker命令使用方法

[root@ecs-43447130 docker]# docker run --help

在这里插入图片描述
命令大全:

https://www.runoob.com/docker/docker-command-manual.html

Docker 容器使用

获取镜像

启动容器前,本地必须有镜像,如果没有则需要通过docker pull 命令去docker hup仓库下载镜像。

$ docker pull nginx

容器生命周期管理

使用docker run命令启动容器,run命令可以指定更多的参数,包括端口映射、容器名称、dns、网络类型等等参数,具体可以参见帮助文档。

$ docker run -d -p 9000:80 nginx:latest    //启动容器
$ docker ps   //查看当前运行容器 -a 参数展示全部容器
$ docker stop "container id"   //停止容器
$ docker restart "container id"   //重启容器
$ docker pause "container id"   //暂停容器
$ docker unpause "container id"   //取消暂停容器
$ docker rm -f "container id"   //删除容器

进入容器

容器运行指定 -d 参数后,容器启动后会进入后台运行,此时像进入容器有2个方式进入:

  • docker attach 该命令退出后 会导致容器的停止 不推荐
  • docker exec 推荐使用这个命令 该命令退出容器后不会导致容器的停止
$ docker exec -it <container id> /bin/sh

在这里插入图片描述

容器导出\导入

导出容器
通过使用docker export 命令导出容器快照到本地文件,以.tar格式保存。

$ docker export bb60ed842d7b > nginx.tar

在这里插入图片描述
导出容器前请使用docker ps --no-trunc 命令查看当前容器的 command,后续导入镜像并启动容器时需要指定command。

$ docker ps --no-trunc

在这里插入图片描述
导入容器
通过使用docker import 命令从容器快照文件中再导入新平台注册为容器镜像,实现跨平台迁移。

$ cat nginx.tar | docker import - test/nginx:v1

在这里插入图片描述
此外,也可以通过指定的URL或者目录来导入。

$ docker import http://example.com/exampleimage.tgz example/imagerepo

Docker 镜像使用

当运行容器时,指定的容器镜像在本地镜像仓库中不存在,docker就会自动从Docker Hub公共镜像仓库中下载。
对我们来说,主要关注:

  • 管理和使用本地镜像;
  • 创建本地镜像

镜像管理

列出镜像列表
通过docker images 命令列出本地镜像仓库中的全部镜像信息
在这里插入图片描述
查找镜像
我们可以通过docker search 命令从Docker Hub上搜索镜像
在这里插入图片描述
拉取镜像
可以通过docker pull命令从Docker Hub上下载镜像到本地仓库
在这里插入图片描述
删除镜像
我们可以通过docker rmi 命令删除本地镜像仓库的任意镜像;
在这里插入图片描述

创建镜像

如果docker hub仓库下载的镜像不能满足我们的应用需要,我们可以通过以下两种方式创建自定义镜像;

  • 从已经创建的容器中更新镜像内容,并提交这个镜像
  • 使用Dockerfile 指令来创建一个新的镜像

更新镜像
我们可以进入一个已经运行的容器,在容器中创建新的文件 touch test.txt。
在这里插入图片描述
退出容器后,使用docker commit 来提交容器副本成为新镜像;
在这里插入图片描述
构建镜像
我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。例如下图就是一个Dockerfile文件。
在这里插入图片描述

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。因此RUN指令不建议太多条,可以合并添加避免镜像有过多的层。
第一条FROM,指定使用哪个镜像源
RUN 指令告诉docker 在镜像内执行命令,安装、添加什么。
然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
在这里插入图片描述
查看镜像
在这里插入图片描述
设置镜像标签
我们可以使用docker tag 为镜像添加一个新标签。
在这里插入图片描述

Docker 仓库管理

公共仓库 Docker Hub

仓库登陆和退出

$ docker login     //登陆
$ docker logout    //登出

拉取镜像

$ docker search ubuntu    //查找镜像
$ docker pull ubuntu      //拉取镜像到本地

推送镜像
其中username替换为自己的Docker Hub账号用户名

$ docker tag ubuntu:18.04 username/ubuntu:18.04   //镜像打标签
$ docker push username/ubuntu:18.04               //镜像推送到仓库

本地私有镜像仓库

本地私有镜像仓库在部署docker服务的主机上,用户可以通过docker images查询本地的容器镜像,也可以制作、修改镜像到本地仓库。

$ docker images    //查询本地全部镜像
Docker 学习笔记Docker 命令大全 Docker 学习笔记Docker 命令大全。本文总结了Docker使用过程中常用命令,以及各命令常用参数的解释说明。 阅读详情

相关推荐

IEPE传感器4mA恒流源接口电路

另外传感器的偏置电压大概在10V多点,一般接个电容把直流分量去掉。这里我们要把恒流源的电流设置在4毫安左右,R1取33Ω差不多正好。经过CR的隔直流电路后的波形是这样的。

老白的博客 5888

Docker学习记录

一、学习目的      众所周知,各种各样的编程语言都有其要求的编程环境。比如说java需要jdk,C需要Linux环境。特别是对于Web编程来说,诸如ionic,angularJS,Vue等等,在开发这些语言的应用之前,都需要给其配好相应的环境。问题来了,五花八门的语言环境不仅凌乱,而且在配置上极其麻烦,运气好地话,能够几遍就解决。运气不好,光是配置环境就要折腾几天。这种情况下,Docker应运...

Dream___Boy的博客 520

基于情感分析+聚类分析+LDA主题分析对服装产品类的消费者评论分析

本研究旨在通过对服装产品类的消费者评论进行综合分析,为企业提供更全面、更深入的市场洞察和决策支持。同时,本研究的方法和结果也可以为其他领域的消费者评论分析提供借鉴和参考。

m0_64336780的博客 2万+

Docker学习笔记--3.为镜像添加标签

3. 为镜像添加标签 a. 标签内容 i. 镜像名的末尾 1) 版本号 2) 版本名 3) latest ii. 镜像名的前面 1) registry名和端口 2) 用户名 b. 为镜像分配名称 i. 构建镜像docker build -t 镜像名 1) 从头构建镜像,即从Dockerfile构建镜像,并为其分配一个名字; ii. 提交镜像docker commit 新镜像名 原镜像名或ID 1) 从容器创建镜像 iii. 导入与导出镜

wangqingkun10的博客 1658

Docker镜像管理

docker 是什么?是go语言开发的开源的容器引擎是在容器里运行应用的工具,可以看作是一种轻量级的“虚拟机”可以实现容器应用的一次封装,到处运行docker容器 和 虚拟机 区别共享宿主机内核 拥有独立的操作系统内核启动速度快,秒级 分钟级性能接近原生,几乎无损耗 通过hypervisor对主机进行访问,会多占用一些资,性能源弱于容器,最多损耗50%单机容量成百上千个 几十个namespace资源隔离,cgroup资源限制 完全隔离。

m0_73464307的博客 1792

怎么给镜像标签

Docker 镜像标签(tag)是一个非常简单但非常实用的操作,它可以帮助你为镜像指定特定的版本或用途(如 、 等)。以下是具体的操作方法: 操作示例 1. 查看本地镜像列表 首先,使用以下命令查看当前本地镜像: 输出示例: 从中可以找到镜像的 和当前的 /。假设,你有一个镜像 ,表示的是 ,你希望将其标记为 。可以运行以下命令: 或者直接通过镜像名称和标签操作: 3. 检查新的镜像标签 重新查看镜像列表,使用 命令,现在应该可以看到新的标签: 输出示例: 可以看到 和 指向了同一个 ,说明

m0_57236802的博客 1905

dockerdocker学习笔记

docker学习笔记

weixin_43308380的博客 1332

Docker学习笔记

网上关于docker的介绍很多,要不就是讲的很底层,要不就是不连贯,能把知识穿起来的我没找到,所以最后还是自己写个笔记,方便以后回顾。对于笔记的学习,还是看不太进去,准备找一些视频介绍进行学习

qq_55728814的博客 1670

docker学习笔记

学习网址 # 获取镜像 docker pull ubuntu:18.04 # 列出已经下载的镜像(-a显示中间层) docker image ls [-a] # 列出悬虚镜像(-f为过滤器) docker image ls -f dangling=true # 列出id docker image ls -q # 输出后台运行结果 docker container logs 容器名字 # 容器列出 docker container ls [-a] docker container ls --no-trun

superprintf的博客 215

Docker学习笔记索引

Docker学习笔记 ->环境与背景篇->1、容器技术 Docker学习笔记 ->环境与背景篇->2、docker简介 Docker学习笔记 ->环境与背景篇->3、安装docker(ubuntu ) Docker学习笔记 ->环境与背景篇->3、安装docker(CentOS7 ) Docker学习笔记 ->环境与背景篇->3、安装d...

外环西路 577

Docker学习笔记这一篇就够

Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。​ Linux容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。

weixin_45501045的博客 1050

狂神Docker学习笔记下载

狂神Docker学习笔记下载 去发现同类优质开源项目:https://gitcode.com/ 本仓库提供了一个名为“狂神Docker学习笔记.pdf”的资源文件下载。该文件是学习Docker时整理的学习笔记,内容详实,适合初学者和进阶学习者参考。 资源文件描述 文件名: 狂神Docker学习笔记.pdf 文件类型: PDF 文件大小: [文件大小] 内容概述: 该PDF文件包含了Docker的...

gitblog_06644的博客 413

Docker 完整学习笔记

记录docker学习过程

dandingchongci的博客 1270

华为保时捷默认铃声Mate40RS

华为Mate40RS 默认铃声。包括:通知提示音、闹钟铃声、电话铃声。先下载文件,然后在华为手机“设置--声音和振动”:来电铃声,默认通知铃声。闹钟铃声需要去闹钟App中设置。亲测,保时捷的铃声比普通的铃声更好听、高级!!!

上一篇: MySQL 8.0 命令手册
Charles__Yin
博客等级 码龄10年 16粉丝 · 9原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值