Docker介绍与使用

Docker介绍与使用

目录:
一、Docker介绍
1、Docker概述与安装
2、Docker三要素
二、Docker常用命令的使用
1、镜像相关命令
2、容器相关命令
三、Docker实战之下载mysql、redis、zimg

一、Docker介绍

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的操作系统的机器上,也能实现虚拟化。

1、Docker概述与安装

Docker 概述 |Docker 文档
Windows和Linux安装Docker-CSDN博客

2、Docker三要素

  • 镜像(image):镜像就是一个只读的模板
  • 容器(container):容器是代码的隔离环境,可以理解为一台独立的服务器
  • 仓库(repository):仓库用来存储镜像,最大的公开仓库是Docker官方的Docker Hub

镜像和容器就像面向对象里的类和对象,也可以将镜像比作印章,那么容器就是盖下的印

二、Docker常用命令的使用

Linux上为了避免每次使用docker命令都需要加上sudo权限,可以将当前用户加入安装中自动创建的docker用户组(可以参考官方文档)

sudo usermod -aG docker $USER

执行完此操作后,需要退出服务器,再重新登录回来,才可以省去sudo权限。

1、镜像(image)

镜像就是一个只读的模板

  1. 镜像的搜索、拉取、查看、删除
    docker search ubuntu	  # 在Ducker Hub上搜索与ubuntu关键词匹配的镜像
    docker pull ubuntu:20.04  # 拉取一个镜像,镜像名称ubuntu,版本20.04,不写版本默认为最新版
    docker images			  # 列出本地所有镜像
    docker rmi ubuntu:20.04	  # 删除镜像ubuntu:20.04 
    
  2. 移植镜像
    docker save -o ubuntu_20_04.tar ubuntu:20.04  #将镜像ubuntu:20.04导出到本地文件ubuntu_20_04.tar中
    docker load -i ubuntu_20_04.tar	#将镜像ubuntu:20.04从本地文件ubuntu_20_04.tar中加载出来
    

    移植到其他服务器记得给tar包加上可读权限

  3. 从一个Docker 容器创建一个新的镜像
    docker commit CONTAINER IMAGE_NAME:TAG 
    

    CONTAINER:容器的ID或名称。
    IMAGE_NAME:TAG:指定新镜像的名称和标签。如果不指定,Docker 会自动生成一个。

2、容器(container)

容器是代码的隔离环境,可以理解为一台独立的服务器

  1. 容器的创建、启动、查看、删除
    docker create -it ubuntu:20.04 	# 利用镜像ubuntu:20.04创建一个容器。
    docker ps -a 					# 查看本地的所有容器,不加-a是查看正在运行的容器
    docker start CONTAINER  		# 启动容器
    docker stop CONTAINER			# 停止容器
    docker restart CONTAINER		# 重启容器
    docker run -itd ubuntu:20.04	# 利用镜像ubuntu:20.04创建并启动一个容器
    docker rm CONTAINER				# 删除容器
    docker container prune			# 删除所有已停止的容器
    

    CONTAINER:容器的ID或名称。

  2. 在容器中执行命令,本地和容器间复制文件
    docker attach CONTAINER 		# 进入容器。先按Ctrl p,再按Ctrl q可以挂起容器
    docker exec CONTAINER COMMAND	# 在容器中执行命令
    docker cp xxx CONTAINER:xxx 	# 将本地xxx文件复制到容器的xxx目录
    docker cp CONTAINER:xxx xxx		# 将本地容器的xxx文件复制到本地xxx目录
    

    CONTAINER:容器的ID或名称。

    COMMAND:要执行的命令例如:ls

  3. 容器的导出与导入
    docker export -o xxx.tar CONTAINER		# 将容器CONTAINER导出到本地文件xxx.tar中
    docker import xxx.tar image_name:tag	# 将本地文件xxx.tar导入成镜像,并将镜像命名为image_name:tag
    

    docker export/importdocker save/load的区别:

    • export/import会丢弃历史记录和元数据信息,仅保存容器当时的快照状态
    • save/load会保存完整记录,体积更大
  4. 查看容器使用情况
    docker top CONTAINER	# 查看某个容器内的所有进程
    docker stats			# 查看所有容器的统计信息,包括CPU、内存、存储、网络等信息
    
  5. 修改容器
    docker rename CONTAINER1 CONTAINER2		# 重命名容器
    docker update CONTAINER --memory 500MB	# 修改容器限制
    

三、Docker实战之下载mysql、redis、zimg

且听下回分析(0^_^0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/695478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#上位机与三菱PLC的通信09---开发自己的通讯库(A-3E版)

1、A-3E报文回顾 具体细节请看: C#上位机与三菱PLC的通信05--MC协议之QnA-3E报文解析 C#上位机与三菱PLC的通信06--MC协议之QnA-3E报文测试 2、为何要开发自己的通讯库 前面开发了自己的A-1E协议的通讯库,实现了数据的读写,对于封装的通…

Kubernetes二进制搭建

目录 1.操作系统初始化配置(所有节点同此操作) 2.部署etcd集群 etcd概述 准备签发证书环境 在master01节点上操作(192.168.88.22) 在两个node节点上操作 总结: 3.部署docker引擎 4.部署Master组件 总结&…

SQL语法-DQL-测试练习

因篇幅原因,本篇承接此篇->第八篇:SQL语法-DQL-数据查询语言-CSDN博客 本篇是对于SQL语法DQL语句的练习,因水平和精力有限(就不像前两篇的DDL,DML那样自出练习了)直接照搬了【黑马程序员】在哔哩哔哩的…

有影响因子的《科教文汇》2024投稿攻略

《科教文汇》主要设有八面来风、教育观察、卷首语、教育管理、思政教育、教改教法、课程思政、基础教育、职业教育等栏目。 主管单位 安徽省科学技术协会 主办单位 安徽省老科技工作者协会、安徽省科学教育研究会 国内统一刊号CN34-1274/G, 国际标准刊号ISSN 16…

基于 Fluid+JindoCache 加速大模型训练的实践

作者:王涛(扬礼)、陈裘凯(求索)、徐之浩(东伝) 背景 时间步入了 2024 年,新的技术趋势,如大模型/AIGC/多模态等技术,已经开始与实际业务相结合,并开始生产落地。这些新的技术趋势不仅提高了算力的需求,也…

XGB-8: 加速故障时间的生存分析

什么是生存分析 生存分析(回归)模型时间到感兴趣事件的持续时间。生存分析是一种特殊的回归,与传统的回归任务不同,具体如下: 标签始终为正值,因为不能等待负时间直到事件发生标签可能不是完全已知&#…

搭建XSS 测试平台

XSS 测试平台是测试XSS漏洞获取cookie并接收Web 页面的平台,XSS 可以做 JS能做的所有事,包括但不限于窃取cookie、后台增删改文章、钓鱼、利用XSS漏洞进 行传播、修改网页代码、网站重定向、获取用户信息(如浏览器信息、IP 地址)等。这 里使用的是基于x…

Windows下搭建EFK实例

资源下载 elasticSearch :下载最新版本的就行 kibana filebeat:注意选择压缩包下载 更新elasticsearch.yml,默认端口9200: # Elasticsearch Configuration # # NOTE: Elasticsearch comes with reasonable defaults for most …

Rust Vs Go:从头构建一个web服务

Go 和 Rust 之间的许多比较都强调它们在语法和初始学习曲线上的差异。然而,最终的决定性因素是重要项目的易用性。 “Rust 与 Go”争论 Rust vs Go 是一个不断出现的话题,并且已经有很多关于它的文章。部分原因是开发人员正在寻找信息来帮助他们决定下…

信息系统基础

本博客地址:https://security.blog.csdn.net/article/details/136211072 一.信息系统概述 1、信息系统是由计算机软硬件、网络和通信设备、信息资源、用户和规章制度组成的以处理信息流为目的的人机一体化系统。信息系统的功能有:输入、存储、处理、输…

前端架构: 实现脚手架终端UI样式之ANSI escape code, Chalk, Ora介绍

在脚手架当中实现命令行的UI显示 1 )概述 在命令行中,如果想实现除传统的常规文本以外的内容比如想对字体进行加粗斜体下划线,包括对它改变颜色改变前景色改变后景色等等需要借助一个叫做 ANSI escape code 这样的一个概念它其实是一个标准&…

人工智能与机器学习行业新闻:颠覆企业运营方式的 AI 趋势

AI 推动业务转型 人工智能 (AI) 和机器学习已经在重塑各行各业的业务模式。AI 通过处理和整合数据支持战略决策的制定,其规模和速度远远超过了人脑。无疑,未来我们还将在 AI 领域取得许多重大突破,而拥有大量数据的行业可能会从人工智能革命…

Spring Authorization Server (如何使用具有 PKCE 的单页应用程序进行身份验证-2)

使用 Spring Authorization Server 实现具有 PKCE 的单页应用程序进行身份验证 开启 CORS SPA 由静态资源组成,可以通过多种方式进行部署。它可以与后端分开部署,例如使用 CDN 或单独的 Web 服务器,也可以使用 Spring Boot 与后端一起部署。…

Practical User Research for Enterprise UX

2.1 Why It’s Hard to Get Support for Research in Enterprises 2.1.1 Time and Budget Instead of answering the question “What dowe gain if we do this research?”, ask instead “What do we stand to lose if we don’t do the research?” 2.1.2 Legacy Thinkin…

鸿蒙会成为安卓的终结者吗?

随着近期鸿蒙OS系统推送测试版的时间确定,关于鸿蒙系统的讨论再次升温。 作为华为自主研发的操作系统,鸿蒙给人的第一印象是具有颠覆性。 早在几年前,业内就开始流传鸿蒙可能会代替Android的传言。毕竟,Android作为开源系统&…

python中websockets与主线程传递参数

目录 一、子线程创建websockets服务端接收客户端数据 二、主线程内启动子线程接收并处理数据 一、子线程创建websockets服务端接收客户端数据并存入队列 发送的消息客户端与服务端统一,多种消息加入判断的标签 服务端:web_server.py import asynci…

迷你世界彩色建筑生成

local x0,y0,z00,20,0--起点坐标 local dx,dy,dz100,100,1--外切长方体横纵竖长度 local count,all0,dx*dy*dz--计数,总数 local m,k10000,0--单次生成方块数,无用循环值 local x,y,z0,0,0--当前坐标 local id600--方块id local demath.random(2,12)/2 -…

如何使用idea连接服务器上的mysql?

安全组进行开放 具体步骤 关闭防火墙 开放端口号 重启防火墙 firewall-cmd --reload在mysql进行修改配置 update user set host % where user root;flush privileges;使得其他网络也可以连接这个数据库 另外如果想要sqlyog或者其他图形化界面要连接到数据库可以看下面这…

创建无名信号量

#include<myhead.h> //创建无名信号量 sem_t sem;//定义生产者 void *task1(void *arg) {int num5;while(num--){sleep(1);printf("我生产了一辆特斯拉\n");//释放资源sem_post(&sem);}//退出线程pthread_exit(NULL); } //定义消费者 void *task2(void *ar…

Android Debug Bridge (ADB) v1.0.31

Android Debug Bridge [ADB] v1.0.31 References Android SDK Platform Tools for Windows, Linux, Mac (all versions) https://developer.android.google.cn/studio/releases/platform-tools Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保…