Docker - 入门基础

原文地址,使用效果更佳!

Docker - 入门基础 | CoderMast编程桅杆icon-default.png?t=N7T8https://www.codermast.com/dev-tools/docker/docker-basic.html

Docker架构

Docker 使用的是客户端-服务端(C/S)架构模式,使用远程 API 来管理和创建 Docker 容器。

Docker 客户端与 Docker 守护进程,负责构建、运行和 分发 Docker 容器。Docker 客户端和守护程序可以 在同一系统上运行,或者您可以将 Docker 客户端连接到远程 Docker 守护进程。Docker 客户端和守护程序使用 REST API 通过 UNIX 进行通信 套接字或网络接口。另一个 Docker 客户端是 Docker Compose, 这样,您就可以使用由一组容器组成的应用程序。

  • Docker客户端:可以是基于命令行的 Docker 客户端,也可以是基于图形化界面的 Docker 应用。

  • Docker服务端:一个运行 Docker 服务的机器,可以是本地主机,也可以是远程的服务器。

  • Docker守护进程:Docker 守护程序 () 侦听 Docker API 请求并管理 Docker 对象,例如映像、容器、网络和卷。守护进程也可以 与其他守护进程通信以管理 Docker 服务。

  • Docker桌面:是指在 Windows、Mac、Linux环境中易于安装,可视化构建和共享容器的应用程序。

Docker 的架构和 Redis 的几乎相同。

Docker镜像加速

Docker 安装好之后,在使用时我们需要拉取 Docker 镜像,这些 Docker 镜像存储在国外的 DockerHub 中,在国内访问不稳定,故此 Docker 官方和国内许多服务商提供了国内的加速器服务。

  • Docker官方:https://registry.docker-cn.comopen in new window
  • 阿里云:https://help.aliyun.com/document_detail/60750.htmlopen in new window
  • 网易:http://hub-mirror.c.163.comopen in new window
  • USTC:https://docker.mirrors.ustc.edu.cnopen in new window
  • 七牛云:https://reg-mirror.qiniu.comopen in new window

这里以 Docker 官方提供的国内加速服务为样例,进行配置教程,其他服务商的配置同理。

  • 命令行配置

对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

之后重新启动服务

sudo systemctl daemon-reload
sudo systemctl restart docker
  • 可视化界面配置

在设置中的 Docker Engine 内,插入如下配置即可。

"registry-mirrors":["https://registry.docker-cn.com"
]

插入,保存后,需要重启才能够生效。

  • 检查镜像是否生效
docker info 

Registry Mirrors:https://registry.docker-cn.com/

只要出现如上的镜像链接,就是已经配置成功了。

样例剖析

提示

对上一节中的 centos 实例进行分析

Docker 允许在容器内运行应用程序,使用 docker run 命令来在容器内运行一个应用程序。这里同样是个Hello World,不同在于它是在容器内部运行的。

docker run centos:latest /bin/echo "Hello World"

我们看下各个参数的含义:

  • docker: Docker 的二进制执行文件。
  • run: 与前面的 docker 组合来运行一个容器。
  • centos:latest:指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/echo "Hello world": 在启动的容器里执行的命令以上命令。

完整的意思可以解释为:Docker 以 centos 最新的(默认是latest) 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。

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

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

相关文章

【Web】DASCTF X GFCTF 2024|四月开启第一局 题解

目录 EasySignin cool_index web1234 web4打破防了🤮,应该很接近解出来了,感兴趣的师傅续上吧 EasySignin 先随便注册个账号登录,然后拿bp抓包改密码(username改成admin) 然后admin / 1234567登录 康好康的图片功能可以打SS…

ssh-key关于authorized_keys电脑与linux互相认证

思路: 在A上生成公钥私钥。将公钥拷贝给server B,要重命名成authorized_keys(从英文名就知道含义了)Server A向Server B发送一个连接请求。Server B得到Server A的信息后,在authorized_key中查找,如果有相应的用户名和IP&#xf…

type-cDP输入转双type-cDP输出,加type-c接口充电管理同时接两台显示器或者VR投屏,龙迅LT8712SX方案,龙迅桥接芯片方案

type-c的应用在各种设备上更加广泛,包括手机,电脑,游戏掌机, 因为type-c的功能非常强大,可以做到PD快充,DP信号输出,USB信号输出,所以很多设备为了做得更简洁都开始把其他的如HDMI接…

【网站项目】党员之家服务系统小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

GhostNetV3:探索紧凑型模型的训练策略学习笔记

代码地址(coming soon):Efficient-AI-Backbones/ghostnetv3_pytorch at master huawei-noah/Efficient-AI-Backbones GitHub 论文地址:2404.11202v1.pdf (arxiv.org) 紧凑型神经网络是专门为边缘设备上的应用而设计的&#xff0…

maven问题汇总

​ 1、报错 failed to transfer from http://0.0.0.0/ during a previous attempt. com.byd.xxx:xxx-parent:pom:1.1.0-SNAPSHOT failed to transfer from http://0.0.0.0/ during a previous attempt. This failure was cached in the local repository and resolution is no…

在一台笔记本电脑上试用Ubuntu22.04

在一台笔记本电脑上试用Ubuntu22.04。 本来想看以下该操作系统能否识别笔记本电脑上的硬盘,于是下载试一下。选了一个国内镜像网站下载。下载速度很快。下载以后用软件win image 将下载的iso文件写到U盘上,用的是usb2.0的U盘,该操作用时11分…

STM32电机控制SDK实战

一、前言 本次测试基于ST开发板NUCLEO-F302R8,驱动板X-NUCLEO-IHM07M1,使用无刷直流电机BLDC实现FOC控制;采样三霍尔传感器检测电机转子位置;基于速度环闭环控制实现电机转动; 二、实战环境 软件环境: 1…

某零售企业招聘管理体系搭建咨询项目

科学岗位分析,改善招聘流程,提高招聘及时率随着公司不断发展壮大,企业规模逐渐增大,部门设置也日益增多,因此对人员的需求也日益提高。但是目前该企业在人员招聘方面逐渐暴露出一些诸如岗位分析不到位、缺乏整体面试计…

计算机网络 -- 多人聊天室

一 程序介绍和核心功能 这是基于 UDP 协议实现的一个网络程序,主要功能是 构建一个多人聊天室,当某个用户发送消息时,其他用户可以立即收到,形成一个群聊。 这个程序由一台服务器和n个客户端组成,服务器扮演了一个接受…

.NET 邮件发送 SMTP邮件发送

SMTP(Simple Mail Transfer Protocol)是用于电子邮件传输的规则集,可以从邮件客户端向接收电子邮件服务器发送、中继或转发邮件。发件人可使用SMTP 服务器来执行发送电子邮件的过程。SMTP服务器则是按照这些规则中转电子邮件的服务器。 IMAP…

CSV解析

一直以为csv靠逗号(,)分割数据,那么只要用str.spilt(,,row)便可以将数据分割开。 事实证明想简单了,csv里还有这样的规定,如果数据内有双引号(")和逗号(,)那么&…