Docker容器技术1——docker基本操作

news2025/4/7 15:25:57

Docker容器技术

在这里插入图片描述
随着云计算和微服务架构的普及,容器技术成为了软件开发、测试和部署过程中的重要组成部分。其中,Docker作为容器技术的代表之一,以其简便易用的特点赢得了广大开发者的青睐。

Docker允许开发者在轻量级、可移植的容器中打包和运行应用程序及其依赖项。Docker 通过容器化提供了一种标准化的方式来构建、部署和运行应用程序,使得应用程序可以在任何地方以一致的方式运行。

什么是Docker?

在这里插入图片描述

Docker是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖项打包进一个可移植的容器中,从而可以在任何安装了Docker的Linux或Windows机器上运行。Docker容器就像是一个轻量级的虚拟机,但它并不包含操作系统;相反,它依赖于主机操作系统的内核功能,如命名空间(Namespace)和控制组(Control Group,简称Cgroup),以实现资源隔离和环境的一致性。

或者说,docker是管理容器的引擎,类似VMworkstation,为应用提供打包,部署的平台。

Docker 的核心概念

1. 容器
  • 容器 是一个轻量级、可移植的封装单元,包含了运行应用程序所需的一切:代码、运行时、系统工具、系统库和设置。
  • 容器与宿主机操作系统共享内核,因此容器相比于虚拟机更加轻量级,启动速度快。
2. 镜像
  • 镜像 是容器的只读模板,定义了容器的运行环境。
  • 镜像是通过 Dockerfile 构建的,Dockerfile 是一个文本文件,包含了创建镜像所需的所有指令。
  • Docker Hub 是一个公共的镜像仓库,用户可以从中下载和上传镜像。
3. Dockerfile
  • Dockerfile 是一个文本文件,包含了构建 Docker 镹像所需的一系列指令。
  • 常见的指令包括 FROM(指定基础镜像)、RUN(运行命令)、CMD(默认启动命令)、EXPOSE(暴露端口)等。
4. Docker Compose
  • Docker Compose 是一种工具,用于定义和运行多容器 Docker 应用。
  • 通过一个 YAML 文件来配置应用的服务、网络和卷,简化了多容器应用的部署和管理。

Docker 的优势

1. 轻量级
  • Docker 容器与宿主机共享内核,占用资源少,启动速度快。
2. 一致性
  • 应用程序在不同环境(开发、测试、生产)中运行时保持一致,因为容器环境是完全定义好的。
3. 隔离性
  • 每个容器都有自己独立的文件系统、网络空间等,彼此之间互不干扰,提高了安全性。
4. 可移植性
  • Docker 容器可以在任何安装了 Docker 引擎的系统上运行,包括不同操作系统和硬件平台。
5. 可复用性
  • Docker 镜像可以被多次使用,简化了环境配置过程。
6. 版本控制
  • Docker 镜像支持版本控制,可以方便地回滚到之前的版本。

docker在企业中的应用场景

Docker 的安装

在这里插入图片描述

SaaS-软件即服务
SaaS是软件即服务。英文全称是Software as a Server。

概念:即云端已经将操作系统到运行环境到软件的客户端都已经搭建好了,使用方不需要安装任何环境或软件,只需要访问客户端就能直接使用、

举例:类似于在我的毕业生管理系统上,我先自己利用云端搭建好平台,然后如果有学校想要使用的话直接分配给他们一些账号和密码,他们就可以直接访问我搭建好的系统进行操作了。


PaaS-平台即服务
PaaS是平台即服务,英文全称是Platform as a Server。

概念:利用云端搭建好操作系统或软件层面的如数据库、中间件等供用户使用,使得用户无需关注底层的基础设施和运行环境,只需要利用这些环境运行自己的应用和数据。

举例:就好比学校要使用我的就业管理系统进行管理,但是不想自己搭建机房和环境,所以就直接本地用少量的机器搭建客户端,将数据库、中间件或部分接口放在云端,请求时直接请求云端的接口和数据。


在企业中docker作为业务的最小载体而被广泛应用
通过docker企业可以更高效率的部署应用并且更具节省资源

docker与虚拟化的对比

在这里插入图片描述
如图所示,在虚拟化之中,每个虚拟机都需要一个独立的操作系统,这将会占用巨量的系统资源,并且降低运行密度。操作系统的重启以及部署也需要占用相当的时间。而docker容器在这方面就更具有优势。
在这里插入图片描述

部署docker

容器工作方法

在这里插入图片描述

1. Linux 系统上的安装
  1. 添加 Docker 仓库
]# cd /etc/yum.repos.d
]# vim docker.repo
[docker]
name=docker-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/dockerce/linux/centos/7/x86_64/stable/
gpgcheck=0
[centos]
name=extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/extras/x86_64
gpgcheck=0
  1. 安装 Docker-ce并启动服务
#安装docker
]# yum install -y docker-ce
#编辑docker启动文件,设定其使用iptables的网络设定方式,默认使用nftables
[root@docker ~]# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
--iptables=true
]# systemctl enable --now docker
]# docker info

  1. 激活内核网络选项
    在rhel7中,需要配置内核网络
]# vim /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
]# sysctl --system
]# systemctl restart docker
2. Windows 和 macOS 系统上的安装
  1. 安装 Docker Desktop
    • 访问 Docker 官方网站下载 Docker Desktop:https://www.docker.com/products/docker-desktop
    • 按照安装向导完成安装。

Docker 的基本操作

1. 镜像管理
  1. 搜索镜像

    docker search ubuntu
    

    在这里插入图片描述

    参数
    NAME 镜像名称
    DESCRIPTION 镜像说明
    STARS 点赞数量
    OFFICIAL 是否是官方的

  2. 拉取镜像

    docker pull ubuntu
    

    在这里插入图片描述

  3. 列出本地镜像

    docker images
    

    在这里插入图片描述

  4. 删除镜像

    docker rmi ubuntu
    
  5. 导出镜像

    docker image save nginx:latest -o nginx-latest.tar.gz
    docker image save nginx:latest nginx:1.26-alpine -o nginx.tag.gz
    
2. 容器管理
  1. 启动容器

    docker run -it ubuntu bash
    

    -d #后台运行
    -i #交互式运行
    -t #打开一个终端
    --name #指定容器名称
    -p #端口映射 -p 80:8080 把容器8080端口映射到本机80端口
    --rm #容器停止自动删除容器
    --network #指定容器使用的网络

  2. 列出正在运行的容器

    docker ps
    docker ps -a
    docker inspect busybox
    

    分别是查看当前容器,查看所有容器,查看目标容器运行的详细信息

    在这里插入图片描述

  3. 停止容器

    docker stop container_id_or_name
    
  4. 删除容器

    docker rm container_id_or_name
    
  5. 重新进入容器

    docker attach centos7
    
  6. 在容器中执行命令

    docker exec -it 【test】 ifconfig
    

    【test】是docker容器的名字

3. 网络管理
  1. 创建自定义网络

    docker network create my_network
    
  2. 连接容器到网络

    docker run -it --name my_container --network my_network ubuntu bash
    
4. 卷管理
  1. 创建卷

    docker volume create my_volume
    
  2. 挂载卷到容器

    docker run -it -v my_volume:/mnt/data ubuntu bash
    

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

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

相关文章

举个例子简单告诉你什么是期货期权?

期权,本质上是一种在未来是否决定行使的权益,它预设了当前对未来某一经济行为的权利选择。期权分为买权(或称看涨期权)与卖权(或称看跌期权),分别代表了未来买入或卖出资产的权利。 以黄豆市场…

Qt-QRadioButton控件(23)

目录 描述 相关API 使用 添加默认选项 禁用其他选项 四种触发槽函数的方式 模拟一个点餐系统 分组 描述 这个就是用来做那个单选按钮的,就是几个选择中选一个,默认只能选一个 相关API 使用 创建新项目,如下 添加槽函数,…

新升级|模型面数更少!优化管道/圆柱形模型、直线边曲面模型选用不同的策略

天元轻量化软件的【微分CAD】功能,采用创新智能算法,将CAD模型的曲面化数据自动转换为多边形数据。用户只需要对CAD零件模型预先设定好关键参数,就可以在数十秒内得到一个经过优化处理的3D零件模型。整个转换过程无需人手操作,实现…

什么是人力资源管理软件?HR人力软件有哪些功能?

在人力资源管理中,随着科技的迅猛发展和商业环境的日益复杂化,企业对人力资源管理系统(eHR)的需求不断增加。人力资源管理软件,简称eHR,是一种融合了系统学理论方法的管理工具,旨在通过技术手段…

保姆级教程:利用大模型与高德地图API,轻松实现查找附近咖啡店

随着人工智能和地图服务的迅速发展,我们可以轻松地利用这些工具实现各种便捷功能。例如,通过整合OpenAI的大模型和高德地图API,可以快速查找某个地址附近的咖啡店。本文将介绍如何通过远程调用和多功能调用大模型,结合高德地图API…

MySQL 视图:数据库中的灵活利器

《MySQL 视图:数据库中的灵活利器》 在数据库的世界里,视图(View)是一个强大而实用的工具。它为我们提供了一种灵活的方式来访问和处理数据,同时也带来了许多优点。那么,什么是视图呢?它又有哪…

生成式人工智能大模型及其电力系统数智化应用前沿

《生成式人工智能大模型及其电力系统数智化应用前沿报告(2024)》 大纲目录 一、人工智能发展概述 二、从ChatGPT到Sora:生成式大模型国内外发展历程及布局 三、新型电力系统概述 四、基于新一代人工智能的新型电力系统数智化升级 五、生成式大模型…

SpringCloud - 服务网关(一)

服务网关 Spring Cloud Gateway作为Spring Cloud生态中的网关,不仅提供统一的路由能力,并且还提供了基于FILTER链方式的网关基本的功能。 Spring Cloud Gateway是一个全新的API网关项目,可以替换Zuul开发的网关服务,基于Spring5.…

远程访问NAS

远程访问NAS(网络附加存储)可以通过多种方法实现,每种方法都有其特定的适用场景和优势。以下是一些常见的远程访问NAS的方法: 一、VPN(虚拟专用网络) VPN是通过公共网络建立安全的连接,实现远…

一看就懂导线间隔棒和导线间隔棒在线监测

深圳鼎信智慧科技带您走近导线间隔棒和导线间隔棒在线监测,先来后到,我们先从导线间隔棒讲起: 一、导线间隔棒 导线间隔棒,也称为间隔器,是高压输电线路中不可或缺的关键组件。其主要作用是保持多条导线之间的间距&a…

第二证券:参与股票分红到底有无意义?

A股的上市公司有一些会在半年报后分红,半年报披露在每年8月底截止,所以A股中期分红的公司一般在9-11月进行分红。 股票分红自身是个中性事情,分红后会进行除权除息,出资者总资产是没有改动的。 现金分红:除息后的股价…

中国银河资产笔试25届考什么?如何通过考试|附真题库面试攻略

嘿,各位小伙伴们!我是职小豚,今天就带大家一起探秘中国银河资产 25 届秋招,为大家揭开这场金融之旅的神秘面纱。 一、中国银河资产介绍 中国银河资产,那可是金融领域的璀璨巨星!它就像一座闪耀着智慧光芒…

开放式耳机哪些品牌值得推荐?开放式耳机是什么意思?

现在开放式耳机真的越来越多,也越来越火了,所以如何才能选到一款适合自己的开放式耳机,这真的难到了一部分的小伙伴,也有很多小伙伴过来私信我,作为耳机测评师,这些问题也干脆出一篇文章来回答,…

Centos使用阿里云镜像安装docker及docker hub下载失败解决方案

一 配置阿里云的Yum镜像源 配置阿里云的Yum镜像源可以提高下载速度,尤其是在国内网络环境下。以下是配置阿里云Yum镜像源的步骤: 1. 备份原有的Yum源配置文件 首先,备份系统现有的Yum源配置文件,以防出现问题时可以还原&#x…

一文详解企业上云数据库是干嘛的

企业上云数据库是干嘛的?企业上云数据库是企业将其数据库系统从传统的本地数据中心迁移到由第三方云服务提供商管理的远程服务器上的过程。这样做的目的通常是为了提高数据处理的效率、降低成本、增强数据的安全性和可靠性,以及利用云计算的弹性和可扩展…

【中秋送大礼包49份】

中秋节本商城送出49份大礼包 感谢:各位开发者和读者的支持 代码展示一波 Tips 领取礼包

从新手到高手:用这9个策略让ChatGPT成为你的私人顾问!

ChatGPT已经出来快一年多了,但是我发现周围的小伙伴还是处在调戏ChatGPT的阶段,并没有在日常工作和生活中发挥他应由的价值。我调研下来发现最关键的痛点就是:不知道该怎么写Prompt可以让ChatGPT输出期望的回答。 哎吆,这不正是撞…

Kamailio-基于Zabbix+Kamcli的SIP指标监控

什么是Kamailio? Kamailio 是一个开源的 Session Initiation Protocol (SIP) 服务器,它主要用于建立和管理实时通信会话,如语音和视频通话,与opensips这个产品是同根同源的存在。它们相似,没有更好,是有更合适。 此…

大数据Flink(一百一十三):Flink Python写DataStreamAPI作业快速入门

文章目录 Flink Python写DataStreamAPI作业快速入门 一、Flink数据流 二、Flink分层API 三、Flink流处理程序的一般流程 四、​​​​​​​​​​​​创建PyFlink项目 Flink Python写DataStreamAPI作业快速入门 一、Flink数据流 在 Flink 中,应用程序由数据…

Windows Python 指令补全方法

网络上搜集的补全代码 # python startup file import sys import readline import rlcompleter import atexit import os# tab completion readline.parse_and_bind(tab: complete) # history file histfile os.path.join(os.environ[HOMEPATH], .pythonhistory) try:readline…