配置Docker镜像加速器-Docker命令-Docker 容器的数据卷

news2024/12/23 17:41:45

Docker架构

        

 

  • docker进程(daemon)

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

配置Docker镜像加速器

默认情况下,将来从docker hub(Docker)上下载docker镜像,太慢。一般都会配置镜像加速器,有以下几种可选择:

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

• 阿里云

• 网易云

• 腾讯云

这里演示阿里云镜像加速器:

1、登录阿里云(阿里云-计算,为了无法计算的价值)网站(如下是2023年4的操作界面):选择产品》容器》容器镜像服务ACR

 

2、选择控制台

 

3、在镜像工具中选择镜像加速器,里面有操作文档参考

 

4、根据你的系统(Ubuntu/CentOS...)选择相应的操作文档,并更改里面的极速器地址,在linux中执行相应的命令即可

 sudo mkdir -p /etc/docker
 sudo tee /etc/docker/daemon.json <<-'EOF'
 {
   "registry-mirrors": ["https://72dgbyuc.mirror.aliyuncs.com"]
 }
 EOF
 sudo systemctl daemon-reload
 sudo systemctl restart docker

 

Docker命令

Docker进程相关命令:操作的是daemon

Docker镜像相关命令:操作的是images

Docker 容器相关命令:操作的是container

 

Docker进程相关命令

1、启动docker服务:

 systemctl start docker

2、停止docker服务:

 systemctl stop docker

3、重启docker服务:

 systemctl restart docker

4、查看docker服务状态:

 systemctl status docker

5、设置开机启动docker服务:

 systemctl enable docker

Docker镜像相关命令

1、查看镜像: 查看本地所有的镜像

 docker images
 docker images –q # 查看所用镜像的id

2、搜索镜像:从网络中查找需要的镜像

 docker search 镜像名称

3、拉取镜像:

从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本。

如果不知道镜像版本,可以去docker hub (Docker)搜索对应镜像查看。

docker pull 镜像名称

在dockerhub中查询redis有哪些镜像,步骤如下:

打开hub.docker.com网站》搜索redis》结果会有官方镜像(一般start数高)和非官方镜像》选择官方镜像,如下所示:

 

4、删除镜像: 删除本地镜像

docker rmi 镜像id # 删除指定本地镜像
docker rmi `docker images -q` # 删除所有本地镜像。docker images -q查看所用镜像的id

镜像id可能重复,只是TAG不一样,这时用 docker rmi 镜像id就会报错,需要用docker rmi 名称:TAG 删除,如下:

 

Docker 容器相关命令

1、查看容器

docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器
docker ps -aq # 查看所有容器id

2、创建并启动容器

参数说明:

  • -i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后(exit),容器自动关闭。

  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。

  • -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。

  • -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器

  • --name:为创建的容器命名。

docker run 参数

 

这里的 /bin/bash表示进入容器的初始化指令,可省略。

3、进入容器

docker exec 参数
#如:
# 先创建一个c2容器在后台运行
docker run -id --name=c2 centos:7
# 进入c2容器,若容器没有启动是进入不了的
docker exec -it c2 /bin/bash

 

4、停止容器

docker stop 容器名称

5、启动容器

docker start 容器名称

6、删除容器:如果容器是运行状态则删除失败,需要停止容器才能删除

docker rm 容器名称/容器id
docker rm `docker ps -aq` #删除所有容器。docker ps -aq 显示所有容器id

7、查看容器信息:如容器网关、ip等等

docker inspect 容器名称

Docker 容器的数据卷

思考三个问题:

• Docker 容器删除后,在容器中产生的数据也会随之销毁

• Docker 容器和外部机器可以直接交换文件吗?

• 容器之间想要进行数据交互?

数据卷概念

 

数据卷

• 数据卷是宿主机中的一个目录或文件

• 当容器目录和数据卷目录绑定后,对方的修改会立即同步

• 一个数据卷可以被多个容器同时挂载

• 一个容器也可以被挂载多个数据卷

数据卷作用

• 容器数据持久化

• 外部机器和容器间接通信

• 容器之间数据交换

配置数据卷

创建启动容器时,使用 –v 参数设置数据卷:

docker run ... –v 宿主机目录(文件):容器内目录(文件) ...

注意事项:

  1. 目录必须是绝对路径

  2. 如果目录不存在,会自动创建

  3. 可以挂载多个数据卷

 

同理,在宿主机更改了对应的文件,容器中对应的文件也会对应更改。

当删除了这个容器的时候,这个宿主机中的文件(数据卷)不会被删除,还是存在的。

当重新创建了容器,并挂载了上面设置的数据卷,此时也是容器也是能使用这个数据卷内的文件的。

演示一个容器也可以被挂载多个数据卷:

如下创建名字为c2的容器,挂载两个数据卷(data2、data3)

反斜杠\表示输入多行,~表示宿主机的当前目录,因为在宿主机中执行的命令。但是在容器中不能这样写

docker run -it --name=c2 \
-v ~/data2:/root/data2 \
-v ~/data3:/root/data3 \
centos:7

数据卷容器

多容器进行数据交换

  1. 多个容器挂载同一个数据卷

  2. 数据卷容器

 

上图中,当数据卷容器被移除的时候,容器c1、c2也能正常访问数据卷

配置数据卷容器

  1. 创建启动c3数据卷容器,使用 –v 参数 设置数据卷

docker run -it --name=c3 -v /volume centos:7 /bin/bash #/volume表示容器中的目录,名字可以改变。这里没有设置宿主机目录,docker会给你自动分配一个目录

docker inspect c3命令查看c3容器相关信息:

 

  1. 创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷

docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash #创建c1容器后,容器内部也有/volume目录
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash #创建c2容器后,容器内部也有/volume目录,当c1容器中/volume目录中内容改变的时候c2中的也同样会改变

 

小结

数据卷容器

• 创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )。

• 通过简单方式实现数据卷配置

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

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

相关文章

OpenJudge - 39:多项式输出

目录 一、题目描述 二、代码实现 一、题目描述 一元 n 次多项式可用如下的表达式表示&#xff1a; ​ 其中&#xff0c;​ 称为 i 次项&#xff0c;​ 称为 i 次项的系数。给出一个一元多项式各项的次数和系数&#xff0c;请按照如下规定的格式要求输出该多项式&#xff…

如何在本地搭建Maven环境并整合进IDEA中?【2023最新版】

编译软件&#xff1a;IntelliJ IDEA 2019.2.4 x64 操作系统&#xff1a;win10 x64 位 家庭版 Maven版本&#xff1a;apache-maven-3.6.3 目录 一. 为什么要使用Maven&#xff1f;1.1 获取jar包1.2 添加jar包1.3 使用Maven便于解决jar包冲突及依赖问题 二. 什么是Maven?三. 如何…

排序算法 - 选择排序(Selection sort)

文章目录 选择排序介绍选择排序实现选择排序的时间复杂度和稳定性选择排序时间复杂度选择排序稳定性 代码实现核心&总结 每日一道算法&#xff0c;提高脑力。第四天&#xff0c;选择排序。 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素&#…

Three.js--》理解光源对物体产生影响的重要性

上篇文章 前端开发者掌握3d技术不再是梦&#xff0c;初识threejs 作为three.js入门篇讲解了许多内容但是没有深入了解其原理以及实现方法&#xff0c;仅仅只是展示了实现的内容及代码&#xff0c;本篇文章将深入讲解实现效果其背后用到的知识与原理。 目录 使用相机控件轨道控…

博途PID编程应用(状态机)

博途工艺PID的详细解读可以查看下面的博客文章,这里不再赘述 博途PLC 1200/1500PLC 工艺对象PID PID_Compact详细解读_RXXW_Dor的博客-CSDN博客这篇博文我们详细解读博途PLC自带的PID功能块PID_Compact,大部分工业闭环调节过程,我们采用系统自带的PID功能块基本都能胜任,一…

接收来自客户端的参数使用【JSR303校验框架】进行校验参数是否合法

目录 1&#xff1a;JSR303校验 1.1&#xff1a;统一校验的需求 1.2&#xff1a;统一校验实现 1.3&#xff1a;分组校验 1.4&#xff1a;校验规则不满足&#xff1f; 1&#xff1a;JSR303校验 1.1&#xff1a;统一校验的需求 前端请求后端接口传输参数&#xff0c;是在co…

CTFShow-Web篇详细wp(持续更新中ing)

CTFShow-Web篇详细wp web签到题web2web3web4web5web6web7web8 CTFShow 平台&#xff1a;https://ctf.show/ web签到题 直接F12然后Base64解码 ctfshow{19bdf375-f974-481e-8c62-0f4c3d170fb4} web2 考点&#xff1a;联合查询 先尝试使用万能密码登入 ‘ or 11# 登入成功&am…

搭建家庭影音媒体中心 --公网远程连接Jellyfin流媒体服务器

文章目录 前言1. 安装Home Assistant2. 配置Home Assistant3. 安装cpolar内网穿透3.1 windows系统3.2 Linux系统3.3 macOS系统 4. 映射Home Assistant端口5. 公网访问Home Assistant6. 固定公网地址6.1 保留一个固定二级子域名6.2 配置固定二级子域名 转载自远程穿透的文章&…

dig命令理解DNS域名解析中的A记录,AAAA记录,CNAME记录,MX记录,NS记录,/etc/hosts本地域名IP映射

参考博文&#xff1a;https://blog.csdn.net/zxl1990_ok/article/details/125432123 目录 参考资料DNS简介/etc/hosts本地域名IP映射查询过程举例直接显示DNS寻址结果向特定DNS服务器寻址查询A记录查询AAAA记录CNAME记录MX记录NS记录PTR记录SOA记录查看DNS服务器的主从关系 参考…

外网SSH远程连接linux服务器,看这一篇就够了

文章目录 视频教程1. Linux CentOS安装cpolar2. 创建TCP隧道3. 随机地址公网远程连接4. 固定TCP地址5. 使用固定公网TCP地址SSH远程 转载自内网穿透工具的文章&#xff1a;无公网IP&#xff0c;SSH远程连接Linux CentOS服务器【内网穿透】 本次教程我们来实现如何在外公网环境下…

【SWAT水文模型】SWAT水文模型建立及应用第二期:土地利用数据的准备

SWAT水文模型建立及应用&#xff1a;土地利用数据的准备 1 简介2 土地利用数据的下载2.1 数据下载方式2.1.1 中科院1km土地利用数据2.1.2 清华大学高精度土地利用数据 2.2 数据下载 3 土地利用数据的准备3.1 矢量转栅格3.2 土地利用类型的重分类3.3 土地利用分布图投影调整3.4 …

数据库系统-并发控制

文章目录 一、为什么要并发控制1.2 并发控制解决的问题1.2.1 脏读1.2.2 幻读1.2.3 不可重复读1.2.4 数据丢失问题 二、事务调度及可串行性2.1 事务2.1.1 事务的宏观2.1.2 事务的微观2.1.3 事务的特性 ACID 2.2 事务调度与可串行性2.3 冲突可串行化判定 三、基于封锁的并发控制方…

DNS基础:通过dig命令理解DNS域名解析中的A记录,AAAA记录,CNAME记录,MX记录,NS记录,/etc/hosts本地域名IP映射

参考博文&#xff1a;https://blog.csdn.net/zxl1990_ok/article/details/125432123 目录 参考资料DNS简介/etc/hosts本地域名IP映射查询过程举例直接显示DNS寻址结果向特定DNS服务器寻址查询A记录查询AAAA记录CNAME记录MX记录NS记录PTR记录SOA记录查看DNS服务器的主从关系 参考…

博途PID1200/1500PLC编程应用(SCL状态机编程)

博途工艺PID的详细解读可以查看下面的博客文章,这里不再赘述 博途PLC 1200/1500PLC 工艺对象PID PID_Compact详细解读_RXXW_Dor的博客-CSDN博客这篇博文我们详细解读博途PLC自带的PID功能块PID_Compact,大部分工业闭环调节过程,我们采用系统自带的PID功能块基本都能胜任,一…

【Linux】第八讲:Linux进程信号详解(一)_ 认识信号 | 产生信号

「前言」文章是关于Linux进程信号方面的知识&#xff0c;本文的内容是Linux进程信号第一讲&#xff0c;讲解会比较细&#xff0c;下面开始&#xff01; 「归属专栏」Linux系统编程 「笔者」枫叶先生(fy) 「座右铭」前行路上修真我 「枫叶先生有点文青病」 「每篇一句」 人生天…

【Ambari】开启HDFS 的HA架构

之前搭建的Ambari可以查看之前的博客 接下来我们来看下HDFS 开启HA 开启HDFS 的HA架构 选择启动NN的HA 因为之前是3节点的所以一开始安装的时候 Ambari架构选择了让安装一个NameNode和一个SecendryNameNode。 点击启动NameNode HA 后跳出个界面 填写集群名 类似于之前第…

六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序

文章目录&#xff1a; 1. 插入排序2.希尔排序3.选择排序4.冒泡排序5.堆排序6.快速排序5.1 hoare版本(左右指针法)5.2 挖坑法5.2.1 递归5.2.2 非递归 5.3 前后指针法 1. 插入排序 步骤&#xff1a; 1.从第一个元素开始&#xff0c;该元素可以认为已经被排序 2.取下一个元素tem…

【社区图书馆】Spring Boot 3核心技术与最佳实践

文章目录 前言什么是Spring BootSpring Boot特性Spring Boot优缺点Spring Boot核心功能 记录和随想 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 什么是Spring Boot 使用Sprin…

Java基础(二十):泛型

Java基础系列文章 Java基础(一)&#xff1a;语言概述 Java基础(二)&#xff1a;原码、反码、补码及进制之间的运算 Java基础(三)&#xff1a;数据类型与进制 Java基础(四)&#xff1a;逻辑运算符和位运算符 Java基础(五)&#xff1a;流程控制语句 Java基础(六)&#xff1…

【SWAT水文模型】SWAT水文模型建立及应用第四期: 气象数据的准备(待更新)

SWAT水文模型建立及应用&#xff1a; 气象数据的准备 1 简介2 气象数据的准备&#xff08;传统气象站&#xff09;2.1 天气发生器各参数的计算2.2 降水及气温输入数据的准备 3 气象数据的准备&#xff08;中国区域高精度同化气象站CMADS&#xff09;参考 本博客主要介绍气象数据…