Docker的安装与部署

news2024/11/24 19:54:50

Docker 基本概念介绍


通俗理解:镜像是类,容器是对象实例

仓库 = 应用商店、镜像 = 下载的应用安装程序、容器 = 应用程序

  • 镜像(Image)

    这里面保存了应用和需要的依赖环境

    为什么需要多个镜像?当开发、构建和运行容器化应用程序时,我们通常会有不同优先级。通过为这些独立的任务提供不同镜像

  • 容器(Container)

    镜像的实例。一个容器代表一个正在运行的应用程序、进程或服务。它由 Docker 镜像、执行环境和标准指令集组成。需要扩展服务时,我真正将镜像跑起来的东西,镜像在容器里面。可以看作是一个完全隔离的盒子。

    一个容器镜像实例代表一个独立的进程。

  • Hub

    远程存放镜像的平台, hub上已经有很多制作好的镜像(可以使用国内镜像平台)。

  • 仓库(repository)

    仓库用来保存镜像的地方。

    镜像构建完成后,可以直接在当前宿主上运行,但是 如果需要在其它服务器上使用这个镜像,就需要一个集中存储、分发镜像的服务。仓库就是这样的一个服务。


安装部署 Docker环境


1. 安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

2. 添加稳定镜像源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

因为docker默认官方的镜像源地址是国外的,速度很慢,这里将数据源设置为阿里云的镜像。

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3. 安装 Docker-CE

yum install docker-ce

4. 启动 Docker-CE

#设置开机启动 docker服务:
systemctl enable docker
systemctl start docker

5. 卸载 Docker-CE

yum remove docker-ce
#清除所有的文件目录
rm -rf /var/lib/docker 

Docker 配置国内源加速


1. 修改配置文件

配置文件:/etc/docker/daemon.json,编辑该文件(没有的话先手动创建)加入国内镜像源

  • DockerProxy:https://dockerproxy.com
  • 网易源:https://hub-mirror.c.163.com
  • 百度源:https://mirror.baidubce.com
  • 腾讯源:https://ccr.ccs.tencentyun.com
# 编辑 Docker 配置文件
$ sudo vim /etc/docker/daemon.json
# 加入以下配置项
{
    "registry-mirrors": [
        "https://dockerproxy.com",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://ccr.ccs.tencentyun.com"
    ]
}

Docker镜像加速器(阿里云镜像源)

也可以使用 阿里云-容器镜像服务ACR > 镜像工具 > 镜像加速器

在这里插入图片描述

2. 重启 Docker 服务

# 方法一,采用 systemctl 来重启,推荐
systemctl daemon-reload
systemctl restart docker

# 方法二,采用 service 来重启
service docker restart

3. 查看是否成功

# 查看 Docker 信息
docker info

# 出现以下字段代表配置成功
Registry Mirrors:
  https://dockerproxy.com/
  https://hub-mirror.c.163.com/
  https://mirror.baidubce.com/
  https://ccr.ccs.tencentyun.com/

Docker 常用命令


#查看容器(-a 显示包括已经停止的容器):
	docker ps -a
#拉取镜像: 
	docker pull
#查看镜像: 
	docker images
#删除镜像: 
	docker rmi 镜像name/id
#创建镜像(常用方式),注意结尾的.
	#使用当前目录的 Dockerfile 创建镜像(版本号不加默认为 latest)
	docker build -t [新镜像名称]:[新镜像标签] . 
	#通过 -f Dockerfile 文件的位置
	docker build -f [Dockerfile的路径] .
#创建容器(运行镜像): 
	docker run --name [容器名] -d -p 8080:80 [镜像名称]:[镜像标签]
        --name 容器名称 ,后面跟着是镜像路径或名称
        --rm 运行完后删除该容器
        -p 端口映射 8000 外部端口 80镜像里面运行的端口 将8000映射到镜像里面的80
        -it 输出容器命令行的内容 即容器的自身的程序输出在控制台(进入容器)
        -d 和it相反 隐藏后台运行
#容器交互: 
    docker exec -it [容器name/id] /bin/bash
#退出交互: 
	Ctrl+P,Ctrl+Q(Ctrl键一直保持按下)
#启动容器: 
	docker start 容器name/id
#重启容器: 
	docker restart 容器name/id
#停止容器: 
	docker stop 容器name/id
#杀掉运行中的容器
	docker kill 容器name/id
#删除容器: 
	docker rm 容器name/id
#查看容器日志
	docker logs -f -t 容器name/id
        -f : 跟踪日志输出
        -t : 显示时间戳
#设置开机自启: 
	systemctl enable docker

Docker镜像无法删除的解决办法

#使用强制删除命令:
	docker rmi -f 镜像id

Docker容器无法stop的解决办法

docker在rm或者kill相应的容器时,发现无法删除,或者出现报错

提示 Error response from daemon: Conflict, cannot remove the default name of the container

解决方法:

#使用强制删除命令:
	docker rm -f 容器id
#清理该容器的网络占用:
	docker network disconnect --force bridge 容器id

Docker 镜像导出-导入


将docker image导出保存为tar文件,方便在服务器之间进行传输

1. Docker镜像导出

-o 和 > 表示输出到文件(不加路径则会输出到当前所在目录),[新镜像名称].tar为目标文件

docker save -o D:\[新镜像名称].tar [镜像名称]:[镜像标签]docker save [镜像名称]:[镜像标签] > D:\[新镜像名称].tar 

2. 通过Xftp将导出的tar文件传输到其他服务器上

3. Docker镜像导入

docker load -i [新镜像名称].tar

4. 导出-导入过程中遇到的问题

导入完成后,镜像的名字和 TAG为 <none>

这个问题的根本在于这个镜像压缩包在打包的时候操作不当所导致

例如,使用镜像ID打包的话导致解压的出来的镜像没有名字

docker save -o D:\[新镜像名称].tar [镜像id]

因此,推荐使用镜像名进行打包,此方式打包的镜像,解压出来就有镜像名称了

docker save -o D:\[新镜像名称].tar [镜像名称]:[镜像标签]

重命名镜像的方法:

docker tag [镜像id] [新镜像名称]:[新镜像标签]

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

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

相关文章

【Postman】Newman安装与环境配置完整版(内含安装过程中遇到的问题与解决方案)

文章目录 概要Newman安装三步走一、nodejs安装与环境配置1、安装2、环境配置 二、安装newman1、步骤2、问题与解决方案 三、安装newman-reporter-html 概要 Newman&#xff1a;一款基于nodejs开发的可以运行Postman脚本的工具&#xff0c;并且可以生成测试报告。本文介绍了New…

【Linux】信号补充与总结

可重入函数 【分析】 mian函数正在调用insert函数向链表中插入节点。insert函数分为两步&#xff0c;刚刚执行完第一步时此时硬件发生中断&#xff0c;使进程切换到内核。中断处理完毕切换到用户态之前发现有信号未决&#xff0c;于是进入了信号的处理函数&#xff0c;信号的处…

XGBoost实例——皮马印第安人糖尿病预测和特征筛选

利用皮马印第安人糖尿病数据集来预测皮马印第安人的糖尿病&#xff0c;以下是数据集的信息&#xff1a; Pregnancies&#xff1a;怀孕次数Glucose&#xff1a;葡萄糖BloodPressure&#xff1a;血压 (mm Hg)SkinThickness&#xff1a;皮层厚度 (mm)Insulin&#xff1a;胰岛素 2…

硬件——光模块

简介 光模块的作用就是发送端把电信号转换成光信号&#xff0c;通过光纤传送后&#xff0c;接收端再把光信号转换成电信号。 常见光模块 GBIC 说明&#xff1a;已淘汰产品 速率&#xff1a;1Gbps 出现时间&#xff1a;2000年之前 SFP 说明&#xff1a;GBIC的升级 速率&…

Spring依赖注入方式,自动装配及自动装配特征

Spring依赖注入方式 一、setter注入1.1简单类型1.2引用类型&#xff08;基本数据类型与String&#xff09; 二、构造器注入1.1简单类型1.2引用类型&#xff08;基本数据类型与String&#xff09; 三、依赖注入方式选择四、自动装配依赖自动装配特征 总结 一、setter注入 依赖注…

Windows下安装Hadoop(手把手包成功安装)

Windows下安装Hadoop&#xff08;手把手包成功安装&#xff09; Windows下安装Hadoop&#xff08;手把手包成功安装&#xff09;一、环境准备1.1、查看是否安装了java环境 二、下载Hadoop的相关文件三、解压Hadoop安装包四、替换bin文件夹五、配置Hadoop环境变量六、检查环境变…

UWB自组网定位技术助力消防救援、消防训练人员定位调度!

在消防救援领域&#xff0c;保障消防人员的人身安全是头等大事&#xff01;而保障消防人员的生命安全的关键在于确认其在火场中所在的位置&#xff0c;一旦遇险&#xff0c;可以及时通知后台管理人员和现场调度人员&#xff0c;也方便管理人员及时调度周围救火人员及时援手施救…

Oracle 截取指定字符到目标串的末尾

SQL&#xff1a; SELECT-- 目标字符串 目标字符串 指定符号 最后一个 最后一个字符位置1 substr( HG/2106010103/YG\FJSJ\SXKTFJ\FJ03_JPHD, instr( HG/2106010103/YG\FJSJ\SXKTFJ\FJ03_…

嵌入式linux通用spi驱动之spidev使用总结

Linux内核集成了spidev驱动&#xff0c;提供了SPI设备的用户空间API。支持用于半双工通信的read和write访问接口以及用于全双工通信和I/O配置的ioctl接口。使用时&#xff0c;只需将SPI从设备的compatible属性值添加到spidev区动的spidev dt ids[]数组中&#xff0c;即可将该SP…

【后端面经】微服务架构( 1-4) | 降级:为什么马服要关闭所有人聊天?

文章目录 一、 前置知识1、什么是降级?2、降级的典型应用3、为什么要降级?4、降级的分类5、如何降级?A) 降级的应用场景B) 跨服务降级C) 提供有损服务二、面试环节1、面试准备2、基本流程3、亮点方案A) 读写服务降级写服务B) 快慢路径降级慢路径三、章节汇总 在熔断章…

opencv-23 图像几何变换02-翻转-cv2.flip()

在 OpenCV 中&#xff0c;图像的翻转采用函数 cv2.flip()实现 &#xff0c;该函数能够实现图像在水平方向翻转、垂直方向翻转、两个方向同时翻转&#xff0c;其语法结构为&#xff1a; dst cv2.flip( src, flipCode )式中&#xff1a;  dst 代表和原始图像具有同样大小、类…

通过RPM方式安装,升级,卸载,以及配置使用MySQL

通过RPM方式安装&#xff0c;升级&#xff0c;卸载&#xff0c;以及配置使用MySQL 一、下载 MySQL是一种开源的关系数据库管理系统&#xff0c;被广泛应用于各种业务应用中。本文将讲解如何下载和安装MySQL的rpm安装包。下载rmp安装包有多种方式&#xff1a; 1、可以到MySQL的…

【图解CAN总线】-10-详解CANFD的TDC以及SSP(收发器延迟补偿和第二采样点)

目录 1 CAN Transceiver收发器结构 1.1 CAN收发器对本ECU发送CAN报文的“回采” 1.2 什么是Loop delay环路延迟 1.2.1 Loop delay环路延迟的典型值 2 什么是TDC:Transceiver Delay Compensation收发器延迟补偿 2.1 总结&#xff1a;Transceiver Delay Compensation启用条…

【C#】.Net Framework框架使用JWT

2023年&#xff0c;第31周&#xff0c;第2篇文章。给自己一个目标&#xff0c;然后坚持总会有收货&#xff0c;不信你试试&#xff01; 本篇文章主要简单讲讲&#xff0c;.Net Framework框架下使用JWT的代码例子&#xff0c;以及他们的基本概念。 2002年微软发布了.net framewo…

读书会-《博弈论究竟是什么》

一. 什么是博弈论&#xff1f; 博弈即一些个人、队组或其他组织&#xff0c;面对一定的环境条件&#xff0c;在一定的规则下&#xff0c;同时或先后&#xff0c;一次或多次&#xff0c;从各自允许选择的行为或策略中进行选择并加以实施&#xff0c;各自取得相应结果的过程。 博…

re学习(25)i春秋-re-basebasebase(base64+函数构造)

参考文章&#xff1a;re学习笔记&#xff08;22&#xff09;爱春秋CTF答题夺旗赛&#xff08;第四季&#xff09;-re-basebasebase_ctfbase~base_Forgo7ten的博客-CSDN博 总结&#xff1a;1.flag——→base64加密&#xff08;自定义&#xff09;——→与3异或——→加密后数据…

spring启动流程 (6完结) springmvc启动流程

SpringMVC的启动入口在SpringServletContainerInitializer类&#xff0c;它是ServletContainerInitializer实现类(Servlet3.0新特性)。在实现方法中使用WebApplicationInitializer创建ApplicationContext、创建注册DispatcherServlet、初始化ApplicationContext等。 SpringMVC…

大数据Flink(五十):流式计算简介

文章目录 流式计算简介 一、数据的时效性 二、流式计算和批量计算

dubbo概论

目录 前言&#xff1a; 1.概述 2.服务发现 3.容错 3.1.注册中心宕机 3.2.负载均衡 3.3.限流、熔断 4.通信协议 4.1.HTTP 4.2.dubbo 5.总结 前言&#xff1a; 这可能是全网最深入浅出的dubbo文章&#xff0c;如果你会spring cloud&#xff0c;恭喜你&#xff0c;你可…

Zookeeper命令总结

目录 1、常用命令2、ls path3、create xxx创建持久化节点创建临时节点创建持久化序列节点 4、get path5、set path6、delete path7、监听器总结1&#xff09;节点的值变化监听2&#xff09;节点的子节点变化监听&#xff08;路径变化&#xff09;3&#xff09;当某个节点创建或…