【docker】docker

news2024/11/26 20:24:57

目录

        • 一、docker概念
        • 二、docker安装(centos7)
        • 三、docker架构
          • 3.1 镜像image
          • 3.2 容器container
        • 四、配置docker镜像加速器
        • 五、docker命令
          • 5.1 docker服务命令
          • 5.2 docker镜像命令
          • 5.3 docker容器命令
        • 六、docker容器的数据卷
          • 6.1 容器卷概念及作用
          • 6.2 配置数据卷
          • 6.3 挂载示例
          • 6.4 数据卷容器
          • 6.5 配置数据卷容器

一、docker概念

  • 1.docker是一个开源的应用容器引擎
  • 2.诞生于2013年初,基于GO语言实现,dotCloud公司出品(后改名为Docker Inc)
  • 3.docker可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,发布到任何流行的linux机器上
  • 4.容器是完全使用沙箱机制,相互隔离
  • 5.容器性能开销极低
  • 6.docker从17.3版本之后分为CE(Community Edition:社区版)和EE(Enterprise Editon:企业版)
  • 7.docker可以运行在mac、window、centos、ubuntu等操作系统

二、docker安装(centos7)

  • 1.yum包更新到最新
yum update
  • 2.安装需要的软件包yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
  • 3.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 4.安装docker
yum install -y docker-ce
  • 5.查看docker版本,验证是否成功
docker -v

三、docker架构

3.1 镜像image
  • 1.docker镜像,相当于是一个root文件系统
  • 2.比如官方镜像ubuntu:16.04就包含了完整的一套ubuntu16.04最小
3.2 容器container
  • 1.镜像和容器的关系,就像面向对象程序设计中的类和对象,镜像是静态的定义,容器是镜像运行时的实体
  • 2.容器可以被创建、启动、停止、删除、暂停等

四、配置docker镜像加速器

  • 1.默认情况下,从docker hub(https://hub.docker.com)下载docker镜像,速度很慢,一般会配置镜像加速器

  • 2.USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)

  • 3.阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,将修改代码拷贝到linux中执行即可
    在这里插入图片描述

  • 4.网易云

  • 5.腾讯云

五、docker命令

5.1 docker服务命令
  • 1.启动docker服务
sudo systemctl start docker
  • 2.停止docker服务
sudo systemctl stop docker
  • 3.重启docker服务
sudo systemctl restart docker
  • 4.查看docker服务状态
systemctl status docker
  • 5.设置开机启动docker服务
systemctl enable docker
5.2 docker镜像命令
  • 1.查看镜像
docker images

//REPOSITORY:仓库,镜像的名称
//TAG:版本,latest最新版本
//IMAGE ID:镜像id
//CREATED:创建时间
//SIZE:大小
  • 2.搜索镜像
// 搜索redis镜像
docker search redis
  • 3.拉取镜像
// 拉取redis镜像
docker pull redis 默认下载最新版本的redis镜像
docker pull redis:5.0 下载5.0版本的redis
  • 4.删除镜像
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
redis        latest    7614ae9453d1   19 months ago   113MB

docker rmi  7614ae9453d1   // 按镜像id删除
docker rmi  redis:5.0   // 按版本号删除
  • 5.查看所有镜像的id
docker images -q

在这里插入图片描述

  • 6.删除所有镜像
docker rmi `docker images -q`
5.3 docker容器命令
  • 1.查看容器
// 查看正在运行的容器
docker ps

// 查看所有容器
docker ps -a

  • 2.创建容器
docker run 参数

-i:保持容器运行。通常与-t同时使用。加入t这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
-t::为容器重新分配一个伪输入终端,通常与-i同时使用。
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭
-it创建的容器一般称为交互式容器
-id创建的容器一般称为守护式容器
--name:为创建的容器命名
  • 3.进入容器
// 进入容器名为mysqlserve容器
docker exec -it mysqlserve /bin/bash
// 退出容器
exit;
  • 4.启动容器
// 启动指定容器名的容器
docker start mysqlserve
  • 5.停止容器
// 停止指定容器名的容器
docker stop mysqlserve
  • 6.删除容器
// 删除指定名字的容器
docker rm mysqlserve
// 删除指定id的容器
docker rm 43a987902e8f
// 删除所有容器
docker rm `docker ps -aq`

// 正在运行的容器无法删除,需要停止容器才能删除, -f 强制删除
docker rm mysqlserve -f

在这里插入图片描述

  • 7.查看容器信息
docker inspect mysqlserve
  • 8.查看容器id
docker ps -aq

六、docker容器的数据卷

6.1 容器卷概念及作用
  • 1. 数据卷:是宿主机中的一个目录或文件
  • 2.当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 3.一个数据卷可以被多个容器同时挂载
  • 4.一个容器可以被挂载多个数据卷
6.2 配置数据卷
  • 1.创建启动容器时,使用-v参数来设置数据卷
  • 2.docker run … -v 宿主机目录(文件): 容器内目录(文件)…
  • 3.目录必须是绝对路径
  • 4.如果目录不存在,会自动创建
  • 5.可以挂载多个数据卷
  • 6.挂载的数据会持久化,即使容器销毁,挂载的目录或文件还会存在
6.3 挂载示例
docker run -it --name=容器名 -v ~/data1:/root/data1 -v /root/data2:/root/data2 centos:7
6.4 数据卷容器
  • 1.多容器进行数据交换
  • 2.多个容器挂载同一个数据卷
6.5 配置数据卷容器
  • 1.创建启动c3数据卷容器,使用-v参数 设置数据卷
docker run -it --name=c3 -v /volume centos:7 /bin/bash
  • 2.创建启动c1和c2容器,使用–volumes-from参数设置数据卷
docker run -it --name=c1 --volumns-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumns-from c3 centos:7 /bin/bash

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

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

相关文章

【Linux】多线程概念理论

目录 1 什么是线程? 2 线程的优点 3 线程的缺点 4 线程异常 5 线程用途 6 Linux线程和进程对比 1 什么是线程? 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列…

【ARMv8 SIMD和浮点指令编程】NEON 移位指令——左右移位之术

NEON 移位指令主要涉及逻辑移位、算术移位两大类,同时下面还介绍了两个移位插入指令。 一、逻辑移位 1.1 SHL 左移(立即数)。该指令从向量中读取每个值,将每个结果左移一个立即值,将最终结果写入向量,并将向量写入目标 SIMD&FP 寄存器。 标量 SHL <V><d…

hive之存储优化

从这里开始就是hive调优阶段&#xff0c;怎么让hive跑的更快。 分区表和分桶表都是从存储方向进行优化。 目录 分区表&#xff1a; 概念&#xff1a; 代码&#xff1a; load填充数据&#xff1a; insertselect填充数据&#xff1a; 需求&#xff1a; 分区表基本操作 (一)…

vue3自定义日历

原理 现在的日历分为两种开头&#xff1a; 1. 日, 一, 二, 三, 四, 五, 六 2. 一, 二, 三, 四, 五, 六, 日一行7个日期&#xff0c;一共6行 其实不管哪种都一样&#xff0c;首先要确定第一行1号在哪个位置。 如果说是 日, 一, 二, 三, 四, 五, 六&#xff0c;那么getDay()是几…

了解Unity编辑器之组件篇UI(一)

UI组件&#xff1a;提供了用户交互&#xff0c;信息展示&#xff0c;用户导航等功能 一、Button&#xff1a;用于响应用户的点击事件 1.Interactable&#xff08;可交互&#xff09;&#xff1a;该属性控制按钮是否可以与用户交互&#xff0c;如果禁用则按钮无法被点击。可以通…

为什么TM服务器要安装php~

"想像力比知识更重要。因为知识是有限的&#xff0c;而想像力是无限&#xff0c;它包含了一切&#xff0c;推动着进步&#xff0c;是人类进化的源泉。 -- 爱因斯坦 为什么服务器要安装php~ 服务器为什么安装PHP (2023年) 导读&#xff1a;今天来给各位分享关于服务器为什么…

List有值二次转换给其他对象报null

List<PlatformUsersData> listData platformUsersMapper.selectPlatformUserDataById(data); users.setPlatformUsersData(listData);为什么listData 有值&#xff0c;users.getPlatformUsersData&#xff08;&#xff09;仍然为空在这段代码中&#xff0c;我们假设listD…

初识C++ ------ 引用、内联函数、auto关键字、基于范围的for循环、指针空值

文章目录 引用特点引用和指针的区别 内联函数概念 auto 关键字基于范围的for循环指针空值 nullptr &#xff08;C11&#xff09; 引用 特点 传引用返回&#xff1a;提高了效率&#xff0c;可以修改返回对象&#xff0c;传引用传参&#xff1a;提高效率&#xff0c;输出型参数。…

解密动态内存管理的奥秘(含内存4个函数)

目录 一.为什么存在动态内存管理 二.动态内存函数的介绍 1. malloc函数&#xff08;memory alloc 内存开辟&#xff09; 函数介绍&#xff1a; malloc函数使用举例代码&#xff1a; 2.free&#xff08;释放&#xff09; 函数介绍&#xff1a; 代码的示例&#xff1a…

Linux 网络通信epoll详解( 10 ) -【Linux通信架构系列 】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦&#xff01;&#xff01;&#xff01; 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the…

《网络是怎样连接的》(二.1)

(83条消息) 《网络是怎样连接的》&#xff08;一&#xff09;_qq_38480311的博客-CSDN博客 本文主要取材于 《网络是怎样连接的》 第二章。 目录 &#xff08;1&#xff09;创建套接字 &#xff08;2&#xff09;连接服务器 &#xff08;3&#xff09;收发数据 &#xf…

文本预处理——文本处理的基本方法

目录 什么是分词jieba分词特性精确模式分词全模式分词搜索引擎模式分词使用用户自定义词典 命名实体识别词性标注 什么是分词 jieba分词特性 精确模式分词 import jieba content工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作 print(jieba.lcut(co…

《零基础入门学习Python》第055讲:论一只爬虫的自我修养3:隐藏

0. 请写下这一节课你学习到的内容&#xff1a;格式不限&#xff0c;回忆并复述是加强记忆的好方式&#xff01; 上节课我们说过了&#xff0c;有一些网站比较痛恨爬虫程序&#xff0c;它们不喜欢被程序所访问&#xff0c;所以它们会检查链接的来源&#xff0c;如果说来源不是正…

ONGUI

public class ONGUI : MonoBehaviour {private void OnGUI() {GUI.Label(new Rect(0,0,100,250),"ONGUI");} }说明是以左上角为原点来算的

Spring Cloud【服务网关Gateway(三大核心概念、入门案例、路由规则 、Java API构建路由、动态路由、断言功能详解)】(六)

目录 服务网关Gateway_三大核心概念 服务网关Gateway_入门案例 服务网关Gateway_路由规则 服务网关Gateway_Java API构建路由 服务网关Gateway_动态路由 服务网关Gateway_断言功能详解 服务网关Gateway_三大核心概念 路由(Route) 这是网关的基本构建块。它由一个ID&am…

小程序自定义导航栏

效果图 代码 app.json文件下 "window":{"navigationStyle": "custom" //增加此属性},app.js文件 //计算高度 App({onLaunch() {wx.getSystemInfo({ // 获取设备信息success: (res) > {this.globalData.systeminfo res//导航栏let statusB…

springboot整合quartz通过数据库配置任务调度简单办法

简介 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目&#xff0c;它可以与J2EE与J2SE应用程序相结合也可以单独使用。在java企业级应用中&#xff0c;Quartz是使用最广泛的定时调度框架。 在Quartz中的主要概念&#xff1a; Scheduler&#xff1a;调度任务…

C语言中文件的读写

不争输赢&#xff0c;只问对错 文章目录 一、文件的概述 二、什么是读写文件 三、文件处理的函数 1.文件的打开与关闭 2.文件的顺序读写 文件的顺序读写相关函数 scanf 和 printf 家族的对比及其区分 3.文件的随机读写 文件的随机读写函数 四、文件缓冲区 五…

【el-tree查询并高亮】vue使用el-tree组件,搜索展开并选中对应节点,高亮搜索的关键字,过滤后高亮关键字,两种方法

第一种&#xff08;直接展开并高亮关键字&#xff09; 效果图这样的&#xff0c;会把所有的有这些关键字的节点都展开 代码&#xff1a; 这里的逻辑就是通过递归循环把所有和关键字匹配的节点筛选出来 然后通过setCheckedKeys方法把他展开选中 然后通过filterReal把关键字高亮…

Hadoop——DataGrip连接MySQL|Hive

1、下载 DataGrip下载&#xff1a;DataGrip: The Cross-Platform IDE for Databases & SQL by JetBrains 2、破解 破解链接&#xff1a;https://www.cnblogs.com/xiaohuhu/p/17218430.html 3、启动环境 启动Hadoop&#xff1a;到Hadoop的sbin目录下右键管理员身份运行…