首页 > 其他分享 >Docker--了解及基础使用篇

Docker--了解及基础使用篇

时间:2023-07-19 21:56:26浏览次数:74  
标签:容器 -- 文件系统 了解 镜像 Docker docker

Docker--了解及基础使用篇

Docker 架构:

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。客户端及我们用到终端命令。 服务端通常为一个守护进程。

安装

Windows

以下步骤仅限于Win10系统,其他版本没做尝试

  1. 首先下载Docker Desktop
  2. 开启Hyper-V: 控制面板>程序>启用或关闭Windows功能>Hyper-V,选中确定即可。或者通过命令Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All 也可以。
  3. 安装WSL2
  4. 安装 Docker Desktop for Windows
  5. 输入命令docker run hello-world 验证是否安装成功。首先发现没有镜像hello-world则会进行拉取, 然后运行容器打印"Hello from Docker!"

Linux

CentOS

一行命令解决安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

然后运行docker:

sudo systemctl start docker

验证安装:

sudo docker run hello-world

开启开机自启动与其他服务类似:

sudo systemctl enable docker

镜像管理

查看镜像

docker images

删除镜像

docker rmi -f 镜像名称:tag

创建容器并启动

基本语法如下:

docker run [options] image [command] [arg...]

常用option:

  • -d: 后台运行
  • -i: 以交互模式运行容器,即通过终端进行交互, 通常与-t配合使用
  • -t: 用于指定容器交互的终端, 一般指定为/bin/bash
  • -p: 指定端口映射, 格式为: 宿主机端口: 容器端口
  • -e: 设置环境变量, 格式为: 变量名=变量值
  • --volume,-v: 挂载, 格式为: 宿主机路径:容器内路径
  • --name="somename": 为容器指定一个名称

例如:

docker run -dit /bin/bash -p 6080:80 --gpus=all -e USER=ubantu -e HTTP_PASSWORD=ubantu -v E:\exchange:/dev/shm ubuntu-desktop-20.04:mod1 

上述例子实例化ubuntu-desktop-20.04:mod1镜像的一个容器, 并指定为后台运行的交互式运行。 宿主端口6080映射到80, 指定了多个环境变量,指定了挂载路径。

若想启动容器不启动可参考 docker create

删除容器

docker rm -f 容器id或名称

查看容器

docker ps

查看已停止容器:

docker ps -a

启动/停止/重启容器

start/stop/restart 容器id或名称

进入正在运行的容器

docker exec -it 容器id /bin/bash

持久化容器

容器只是镜像的一个实例, 只是运行在内存中。 就好比声明类(镜像), 实例化对象(容器)一样,而持久化容器就好比类实例序列化。

在 Docker 中,有三种方式可以将容器中的文件系统保存为镜像:

  1. docker commit:将当前容器的文件系统保存为一个新的镜像。该镜像包含容器中的所有修改,包括新创建的文件、修改的配置等,但不包括容器的状态和元数据。
    docker commit -a 作者  -m 提交说明  容器id  镜像名称:tag
    
  2. docker save:将指定的镜像及其所有依赖镜像打包成一个 tar 文件,并导出到本地文件系统。导出的 tar 文件包含完整的镜像和依赖镜像,包括镜像的元数据和状态信息。
    docker save -o 指定存储到本地的文件路径  镜像名称:tag
    
  3. docker export:将当前容器的文件系统打包成一个 tar 文件,并导出到本地文件系统。导出的 tar 文件包含容器中的所有文件,但不包括容器的状态和元数据。
    docker export -o 指定存储到本地的文件路径   容器id或名称
    

上述容器的状态和元数据通常如下:

  • 运行状态:包括容器的 PID(进程 ID)、CPU 和内存使用情况、网络配置、文件系统挂载点和容器的健康状态等。
  • 元数据:包括镜像的名称、版本、标签、创建时间、镜像 ID、容器的名称、ID、创建时间、启动命令、端口映射、环境变量、网络配置、容器的标签和注释等。
  • 容器日志等信息

导入镜像

docker import 本地导出的文件路径  指定镜像名称:tag

其他实用命令

  1. 拷贝宿主机器文件到容器中
    docker cp 宿主机器路径  容器id:容器中路径
    
  2. 查看容器中运行的进程
    docker top
    

标签:容器,--,文件系统,了解,镜像,Docker,docker
From: https://www.cnblogs.com/quenwaz/p/17566873.html

相关文章

  • cancal报错 config dir not found
    替换classpath中间封号两边的值......
  • DP: 0-1背包,完全背包
    见:『一文搞懂完全背包问题』从0-1背包到完全背包,逐层深入+推导-零钱兑换-力扣(LeetCode)0-1背包:dp[i][w]=minmax(dp[i-1][w],dp[i-1][w-wi]+vi)完全背包dp[i][w]=minmax(dp[i-1][w],dp[i][w-wi]+vi)即完全背包可以是重复选。另外,通常可以简化2D数组到1D,因为......
  • Transformer取代者登场!微软、清华刚推出RetNet:成本低、速度快、性能强
    前言 Transformer的训练并行性是以低效推理为代价的:每一步的复杂度为O(N)且键值缓存受内存限制,让Transformer不适合部署。不断增长的序列长度会增加GPU内存消耗和延迟,并降低推理速度。研究者们一直在努力开发下一代架构,希望保留训练并行性和Transformer的性能,同时实现......
  • 《缝合兄弟》隐私政策
    本应用尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息。但本应用将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本应用不会将这些信息对外披......
  • c++ day 12
    前几天一直在修改八字循环的包今天和控制接了一下,可以输出转角和速度,希望到时候实车的时候可以一步到位吧。今天开始整数据结构。先来理解线性表线性表(英语:LinearList)是由n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列。其中:数据元素的个数n定义为表的长度="l......
  • 「学习笔记」FHQ-treap
    FHQ-treap,即无旋treap,又称分裂合并treap,支持维护序列,可持久化等特性。FHQ-treap有两个核心操作,分裂与合并。通过这两个操作,在很多情况下可以比旋转treap等方便的实现一些操作。FHQ-treap与其他的平衡树相比,他最明显的优点是:它好写!!!,想象一下,在考场上,你用较短的时间写出FH......
  • 7.19 图论
    最小生成树[PA2014]Kuglarz\[[a,b)+[b,c)=[a,c)\]由此转化为n+1个点,只要两个点联通,就能知道有没有球,转化为最小生成树问题[国家集训队]TreeI考虑给白边加一个权重c,二分c,白边的数量因为c的变化而变化,最终一定有一种情况选了need条边,注意在边权相等时先选择白边思路题CF70......
  • 完善1x1卷积方案
    完善1x1卷积方案1x1的卷积和3x3的卷积有什么区别?1x1卷积是一种特殊的卷积操作,它只对输入数据的每个像素点进行一次乘法和累加,而不需要构造3x3的矩阵。这样可以减少计算量和内存消耗,同时也可以改变输入数据的通道数,实现特征融合或降维。3x3卷积则是一种常见的卷积操作,它需要对......
  • AtCoder Grand Contest 049 E Increment Decrement
    洛谷传送门AtCoder传送门好题。同时考查了slopetrick和选手的计数能力,不愧是AGCE。先考虑问题的第一部分。你现在有一个初始全为\(0\)的序列\(b\)。你每次可以给\(b\)单点\(\pm1\),代价为\(1\),或区间\(\pm1\),代价为\(m\)。求把\(b\)变成给定序列\(a\)的......
  • # 课设一
    课设一实验任务:将实验7寻址方式在结构化数据访问中的应用中提供的公司数据,呈现在屏幕上,效果如下。assumecs:codesg,ds:table,es:datadatasegmentdb'1975','1976','1977','1978','1979','1980','1981'db'1982',�......