docker的下载与使用(一)

ops/2025/2/27 10:59:03/

本文默认使用linux系统以及会linux的基本指令,windows下安装docker较为繁琐

docker是什么

Docker 是一个开源的应用容器引擎,基于go 语言并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

docker官网)

ubuntu下docker的安装

使用官方的脚本进行自动安装

 curl -fsSL https://test.docker.com -o test-docker.shsudo sh test-docker.sh

手动安装

r如果系统中已经存在docker历史版本的安装包,或者有卸载残留,都可能会导致安装的失败,所以确保安装前,docker已经完全卸载,或删除历史的docker版本。(详见下面文章)

卸载docker指令

docker版本历史

sudo apt-get remove docker docker-engine docker.io containerd runc

有兴趣参考以上文章来了解docker  docker-engine docker.io  删除指令会根据linux的系统不同版本存在些许不同,这里只讲了ubantu

先更新apt包的索引

sudo apt-get update

使用docker仓库来进行安装

安装apt的依赖包,用于仓库的获取

    sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common

添加docker秘钥

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

设置稳定版仓库

echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

安装最新版docker

sudo apt-get install docker-ce docker-ce-cli containerd.io

已经安装成功了,接下来验证安装

sudo docker run hello-world

如果安装成功,输入上述指令则会看到以下内容 

仔细看上面所示的英文,其实他已经揭晓了,docker运行时的过程

 docker run hello-world

其中docker表示 docker执行的二进制文件 

1. 这句话输入以后,docker客户端会像docker的守护进行进行联系

2. docker的守护进程把hello-world这消息放入docker hub中

3.docker守护进程从该镜像创建了一个新容器,该容器运行可执行文件,从而生成了当前正在阅读的输出。

4.docker再把生成内容发送到客户端,客户端在输送到当前显示屏上

可交互式容器

上述第一个docker程序中,输出了文字之后,便没有了后续,这里我们可以通过指定参数来创建一个可以交互的容器,这个容器耗费资源少,但是相应的很多指令和内容都没有

  • -t: 在新容器内指定一个伪终端或终端
  • -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
docker run -i -t ubuntu:15.10 /bin/bash

输入上述代码后

等待服务器下载完成之后,就会出现另外一个linux的系统(这里没有展示图片,因为本人云服务器下载速度较慢),可以使用ls来查看当前系统的文件

要退出可以使用指令

exit

或者CTRL+D来进行退出容器

创建后台程序

上面讲了如何创建交互容器,这里进行后台程序的创建(重点)

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

可以看到输入后,出现的指令是一个长字符串,这个字符串叫做容器id,每个创建的容器都有唯一id,可以通过容器id来查看容器内发生了什么

docker ps

来查看当前有哪些容器

这里是本人的 镜像这些后面的文章会提到

  • CONTAINER ID: 容器 ID。
  • IMAGE: 使用的镜像。
  • COMMAND: 启动容器时运行的命令。
  • CREATED: 容器的创建时间。
  • STATUS: 容器状态。
  • PORTS: 容器的端口信息和使用的连接类型(tcp\udp)

  • NAMES: 自动分配的容器名称

使用一下命令可以查看 容器内的输出 容器id可以只缩写前3个字符

docker logs (容器id)

 停止容器

docker stop

参考文章

https://www.runoob.com/docker/docker-hello-world.html

https://www.docker.com/

https://zhuanlan.zhihu.com/p/305572519

https://blog.csdn.net/doublepg13/article/details/131781150


http://www.ppmy.cn/ops/161658.html

相关文章

Qt常用控件之多行输入框QTextEdit

多行输入框QTextEdit QTextEdit 是一个多行输入框控件,支持富文本和 markdown 格式,当文本内容超出编辑框的范围时能自动提供滚动条。 QPlainTextEdit 是只支持富文本格式的多行输入框,属性和使用上与 QTextEdit 几乎没有区别。 QTextEdit属…

openlayers结合turf geojson面获取面积和中心点

在 OpenLayers 中绘制 GeoJSON 面要素并计算面积和中心点,可以结合 OpenLayers 的 ol/format/GeoJSON 模块将 GeoJSON 数据转换为 OpenLayers 的 Feature,然后使用 Turf.js 进行计算。示例代码如下 import Map from ol/Map; import View from ol/View; …

冒泡排序(Bubble Sort)详细教程:Java实现与优化

一、什么是冒泡排序? 冒泡排序(Bubble Sort)是一种简单的排序算法,它的基本思想是通过两两比较相邻元素,将较大的元素“冒泡”到数列的末尾。每一轮遍历会将一个较大的元素放到正确的位置,直到整个数组有序…

Unity Shader 学习13:屏幕后处理 - 使用高斯模糊的Bloom辉光效果

目录 一、基本的后处理流程 - 以将画面转化为灰度图为例 1. C#调用shader 2. Shader实现效果 二、Bloom辉光效果 1. 主要变量 2. Shader效果 (1)提取较亮区域 - pass1 (2)高斯模糊 - pass2&3 (3&#xff…

【综合项目】api系统——基于Node.js、express、mysql等技术

目录 0 前言 1 初始化 2 注册登录 2.1 注册 2.1.1 功能:密码加密(2.3.3) 2.1.1.1 操作 2.1.1.2 bcryptjs详解 2.1.2 优化:表单数据验证(2.5) 2.1.2.1 过时代码修正 2.1.2.2 关键操作 0 前言 …

MATLAB基础应用精讲-【数模应用】牛顿迭代法(附MATLAB、C++、R语言和python代码实现)

目录 前言 算法原理 什么是牛顿迭代法? 牛顿迭代如何迭代? 啥时候停止迭代呢? 特点 牛顿迭代法的扩展 迭代过程 数学模型 电力系统中牛顿拉夫逊法(N-R)潮流计算的直角坐标形式详细推导 潮流计算的牛顿-拉夫逊方法 牛顿-拉夫逊法的原理 牛顿-拉夫逊法的意义和…

Qt Creator + CMake 构建教程

此教程基于: Qt 6.7.4Qt Creator 15.0.1CMake 3.26.4 Qt 6 以下的版本使用 CMake 构建可能会存在一些问题. 目录 新建窗体工程更新翻译添加资源软件部署(Deploy) 此教程描述了如何一步步在 Qt Creator 中使用 CMake 构建应用程序工程. 涉及 新建窗体工程, 更新翻译, 添加资源, …

音频模拟信号转数字信号的原理

音频模拟信号转数字信号的原理 音频信号是自然界中常见的模拟信号(Analog Signal),它是连续的、随时间变化的波形。为了在计算机或数字设备中处理和存储音频信号,需要将模拟信号转换为数字信号(Digital Signal)。这个过程称为 模数转换(Analog-to-Digital Conversion, …