强大的Docker入门知识

news2025/1/21 15:31:01

目录

一、Docker简介

1.1、Docker是

1.2、Docker通常会在以下情况下使用:

1.3、Docker和VMware区别

1.4、Docker 的优点

二、环境配置

2.1、代码操作

2.2、效果演示

2.3、配置镜像仓库 

开始配置

三、基本命令

3.1、Docker基本命令

3.2、Docker镜像常用命令

1,docker images 列出本机所有镜像

2,docker search 搜索镜像(查官网有那些镜像)

3,docker pull 下载镜像(增)

4,docker rmi 删除镜像(删)

3.3、Docker 容器常用命令

1、Docker创建并启动容器

 a、启动交互式容器:(启动并进入-----it)

 b、守护式方式创建并启动容器(启动但是不进入---di)

2、Docker列出容器(查看容器)

3、Docker退出容器

4、Docker进入容器

5、Docker启动容器

6、Docker重启容器

7、Docker停止容器

8、Docker删除容器

9、Docker容器日志


一、Docker简介

1.1、Docker是

一种开源的容器化平台,可以让开发者将应用程序及其依赖项打包成一个独立的容器,然后部署到任何支持Docker的环境中运行。通过使用Docker,开发者可以实现快速部署、可移植性、可伸缩性和更高的资源利用率。 Docker的核心概念是容器,它是一个轻量级、独立的运行环境,包含了应用程序的代码、运行时环境、系统工具和系统库,可以在任何支持Docker的平台上运行。 Docker还提供了一套工具和服务,如Docker Engine、Docker Compose和Docker Swarm,帮助开发者管理和部署容器化应用程序。 Docker已经成为现代软件开发和部署的重要工具之一(新一代虚拟技术,老一代是VMware,会占用大量内存)。

1.2、Docker通常会在以下情况下使用:

1. 应用程序部署:使用Docker可以将应用程序及其所有依赖项打包成一个独立的容器,然后在任何支持Docker的环境中轻松部署和运行。

2. 开发环境管理:开发者可以使用Docker创建包含特定开发环境的容器,以确保开发和测试环境的一致性,并避免由于环境差异导致的问题。

3. 微服务架构:Docker容器可以用于构建和部署微服务架构,每个微服务可以被打包成一个独立的容器,并通过容器编排工具进行管理。

4. 持续集成和持续部署(CI/CD):Docker可以与CI/CD工具集成,帮助实现自动化构建、测试和部署流程,加快软件交付速度。

5. 多平台支持:Docker容器可以在任何支持Docker的平台上运行,包括开发机、测试环境、云端和本地服务器,实现跨平台部署和可移植性。

总的来说,Docker可以帮助开发者简化应用程序的打包、部署和管理过程,提高开发效率、可靠性和可移植性。

1.3、Docker和VMware区别

都是用于虚拟化技术的工具,但它们有一些重要的区别:

1. 虚拟化级别:Docker是一种容器化技术,它利用容器来隔离应用程序和其依赖的环境。而VMware是一种虚拟机技术,它模拟了一台完整的计算机系统,包括硬件、操作系统和应用程序。

2. 性能:由于Docker容器共享主机的操作系统内核,因此在性能方面比VMware虚拟机更高效。VMware虚拟机需要独立的操作系统和硬件模拟,因此在资源消耗和性能方面通常会有一些额外的开销。

3. 部署和管理:Docker容器可以更快速地部署和启动,而且可以更容易地进行扩展和管理。VMware虚拟机需要较长时间来启动,并且需要更多的管理和配置。

4. 灵活性:Docker容器更加轻量级和灵活,可以在不同的环境中移植和部署。VMware虚拟机则需要更多的配置和资源来运行。

总的来说,Docker更适合于轻量级和快速部署的应用程序,而VMware更适合于需要完全隔离和独立操作系统的应用程序。选择使用哪种虚拟化技术取决于具体的需求和场景。

1.4、Docker 的优点

1、简化程序:

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

2、避免选择恐惧症:

如果你有选择恐惧症,还是资深患者。那么你可以使用 Docker 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

3、节省开支:

一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

二、环境配置

2.1、代码操作

#查看内核
uname -r

#更新yum源为最新
yum update -y

#安装Docker所需要的工具包
yum install -y yum-utils device-mapper-persistent-data lvm2

#设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#正式下载安装Docker
yum install docker-ce docker-ce-cli containerd.io -y -y

#启动Docker并且设置开机自启动
systemctl start docker
systemctl enable docker

#检测Docker是否安装成功
docker version

2.2、效果演示

查看内核 

 

更新yum源为最新

会有点久花10分钟下好

安装Docker所需要的工具包
 

设置yum源

设置yum源,否则走的是国外的(下载速度慢) 不能国内的(速度快),

 

下载安装Docker

 

启动Docker并且设置开机自启动

 

检测Docker是否安装成功-----成功

 

2.3、配置镜像仓库 

进入阿里云镜像官方网址:

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)

第一步:注册,完成后返回就·好了阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

进入阿里云镜像加速器

https://cr.console.aliyun.com/#/accelerator

开始配置

cd /etc/docker/
vi daemon.json


#在文件中添加 配置
{
  "registry-mirrors": ["https://t84pgl53.mirror.aliyuncs.com"]
}


systemctl daemon-reload
systemctl restart docker

在文件中添加 配置是放自己仓库里的,每个人的是不同的

测试:

如果下载到5~3分钟代表成功了,我花了一分钟

#从官网查
docker search mysql

#下载mysql
docker pull mysql

#可以查看有多大
docker images

 可以发现有很多个

删除镜像

docker rmi +..

 

三、基本命令

3.1、Docker基本命令

启动Docker

systemctl start docker

停止Docker

systemctl stop docker

重启Docker

systemctl restart docker

开机启动Docker

systemctl enable docker

查看Docker概要信息

docker info

查看Docker帮助文档

docker --help

查看Docker版本信息

docker version

3.2、Docker镜像常用命令

查看镜像(查)

1,docker images 列出本机所有镜像

docker images

列出本机所有镜像(查看服务器(虚拟机)下载那些镜像)

REPOSITORY

镜像的仓库源

TAG

镜像的标签(版本)同一个仓库有多个TAG的镜像,多个版本;我们用REPOSITORY:TAG来定义不同的镜像;

IMAGE ID

镜像ID,镜像的唯一标识

CREATE

镜像创建时间

SIZE

镜像大小

OPTIONS 

可选参数:

-a

显示所有镜像(包括中间层)

-q

只显示镜像ID

-qa

可以组合

--digests

显示镜像的摘要信息

--no-trunc

显示完整的镜像信息 

2,docker search 搜索镜像(查官网有那些镜像)

和 https://hub.docker.com/(查询太慢了,需要翻墙) 这里的搜索效果一样;

 

OPTIONS可选参数:

--no-trunc

显示完整的镜像描述

-s

列出收藏数不小于指定值的镜像

--automated

只列出Docker Hub自动构建类型的镜像

3,docker pull 下载镜像(增)

docker pull 镜像名称:[TAG]

 

注意:不加TAG,默认下载最新版本latest

列:下载centos7

#下载
docker pull centos:7

#查看是否选择成功
 image for centos:7

4,docker rmi 删除镜像(删)

1,删除单个:docker rmi 镜像名称:[TAG]

删除可以通过名字或者ID删除

 

 

有镜像生成的容器再运行时候,会报错,删除失败;

我们需要加 -f 强制删除

 

 

2,删除多个:docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG]

中间空格隔开

 

3,删除全部:docker rmi -f $(docker images -qa)

3.3、Docker 容器常用命令

1、Docker创建并启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

 

--name="容器新名字":为容器指定一个名称;

-i:以交互模式运行容器,通常与-t或者-d同时使用;

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

-d: 后台运行容器,并返回容器ID;

-P: 随机端口映射,容器内部端口随机映射到主机的端口

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

 启动普通容器: docker run --name 别名 镜像ID  

 a、启动交互式容器:(启动并进入-----it)

  docker run -it --name 别名 镜像ID   来运行一个容器,取别名,交互模式运行,以及分配一个伪终端,并且进入伪终端;

实例:

 docker run -it --name mycentos03 67fa590cfc1c

由原来的localhost变成了容器id

 创好服务器了

结果差不多

注意: 

  1. 启动普通容器的方式基本不用,没有伪终端,没有太大价值;
  2. 启动交互式容器的方式,容器一创建完毕,立即进入伪终端

 

 b、守护式方式创建并启动容器(启动但是不进入---di)

 docker run -di --name 别名 镜像ID 

实例:

 docker run -di --name mycentos02 67fa590cfc1c

执行完命令后,终端依然再宿主机上;

 

启动容器,并执行/bin/bash命令;

 docker run -it --name 别名 镜像ID  /bin/bash命令

 

端口映射;

docker run -it -p 8888:8080 tomcat

docker run -it -P tomcat

2、Docker列出容器(查看容器)

docker ps [OPTIONS]

查看还在运行容器:docker ps

docker ps -a

-a :显示所有的容器,包括未运行的

 

OPTIONS说明:

-a :显示所有的容器,包括未运行的

-f :根据条件过滤显示的内容。

--format :指定返回值的模板文件。

-l :显示最近创建的容器。

-n :列出最近创建的n个容器。

--no-trunc :不截断输出。

-q :静默模式,只显示容器编号。

-s :显示总的文件大小。

docker ps 查看正在运行的容器

docker ps -a 查看所有容器

docker ps -n 2  显示最近创建的2个容器

docker ps -f status=exited 查看停止的容器

3、Docker退出容器

exit 容器停止退出

ctrl+P+Q 容器不停止退出

4、Docker进入容器

adocker attach 容器ID or 容器名 

实例:

docker attach ce6343ee288f

不能进入停止的状态的容器

You cannot attach to a stopped container, start it first

b、Docker进入容器执行命令

docker exec -it 容器名称 或者 容器ID 执行命令

实例:

 docker exec -it tomcat02 ls -l /root/webapp02

直接操作容器,执行完 回到 宿主主机终端;

 我们一般用于 启动容器里的应用 比如 tomcat nginx redis elasticsearch等等

5、Docker启动容器

docker start 容器ID or 容器名

实例:

 docker start mycentos00

6、Docker重启容器

docker restart 容器ID or 容器名

实例:

 docker restart f9cadea1a5e7

7、Docker停止容器

docker stop 容器ID or 容器名

实例:

 docker stop 865b755cd0b2

 

暴力删除,直接杀掉进程 (不推荐)

docker kill 容器ID or 容器名

8、Docker删除容器

docker rm 容器ID  

如果删除正在运行的容器,会报错,我们假如需要删除的话,需要强制删除;

强制删除docker rm -f 容器ID

删除多个容器 

docker rm -f 容器ID1  容器ID2 中间空格隔开

实例:

docker rm 865b755cd0b2 ce6343ee288f

删除所有容器

docker rm -f $(docker ps -qa)

9、Docker容器日志

docker logs [OPTIONS] 容器id

  Options:

        --details        显示更多的信息

    -f, --follow         跟踪实时日志

        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)

        --tail string    从日志末尾显示多少行日志, 默认是all

    -t, --timestamps     显示时间戳

        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

 

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

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

相关文章

【ArcGIS】统计格网中不同土地利用类型占比

基于ArcGIS统计格网中不同土地利用类型占比 数据准备ArcGIS操作步骤1、创建渔网(Create Fishnet)2、建立唯一标识3、选择格网4、提取不同类别土地利用类型5、各类用地面积计算 参考另:可能出现的问题总结Q1:ArcGIS获取唯一值&…

抖音视频批量下载软件|视频评论采集工具

抖音视频评论采集软件是一款基于C#开发的高效、便捷的工具,旨在为用户提供全面的数据采集和分析服务。用户可以通过关键词搜索抓取视频数据,也可以通过分享链接进行单个视频的抓取和下载,从而轻松获取抖音视频评论数据。 批量视频提取模块&a…

Redis String 类型底层揭秘

目录 前言 String 类型低层数据结构 节省内存的数据结构 前言 Redis 的 string 是个 “万金油” ,这么评价它不为过. 它可以保存Long 类型整数,字符串, 甚至二进制也可以保存。对于key,value 这样的单值,查询以及插…

react-组件进阶

1.目标 能够实用props接收数据 能够实现父子组件之间的通讯 能够实现兄弟组件之间的通讯 能够给组件添加props校验 能够说出生命周期常用的钩子函数 能够知道高阶组件的作用 2.目录 组件通讯介绍 组件的props 组件通讯的三种方式 Context props深入 组件的生命周期 Render-p…

死区过滤器Deadband和DeadZone区别(应用介绍)

死区过滤器的算法和详细介绍专栏也有介绍,这里我们主要对这两个模块的区别和应用场景进行详细介绍 1、死区过滤器 https://rxxw-control.blog.csdn.net/article/details/128521007https://rxxw-control.blog.csdn.net/article/details/128521007 1、Deadband和DeadZone区别…

计算机网络:深入探索HTTP

引言: HTTP,全称超文本传输协议(Hypertext Transfer Protocol),是互联网上数据通信的基础。它定义了客户端(如浏览器)和服务器之间如何交互和传输数据。HTTP最初是为了支持Web浏览而设计的&…

面试经典150题——汇总区间

"The only place where success comes before work is in the dictionary." - Vidal Sassoon 1. 题目描述 2. 题目分析与解析 2.1 思路一 因为题目提示了我们数组是有序的,而覆盖区间都是根据数组中连续数字来确定的,比如: 可以…

Linux/Spectra

Enumeration nmap 第一次扫描发现系统对外开放了22,80和3306端口,端口详细信息如下 22端口运行着ssh,80端口还是http,不过不同的是打开了mysql的3306端口 TCP/80 进入首页,点击链接时,提示域名不能解析&…

5分钟看懂安迪比尔定律

大家好,我是董董灿。 今天跟大家聊一个,在写程序的过程中节省内存的这个话题。 话题来源于一个小伙伴问:我在写程序的时候,更改一个判断语句,会提升几毫秒,换一种方法会节省几KB,这些有必要吗? 这里涉及到一个软件与…

搭建sql-labs-master

环境:win10 解压sql-labs-master靶场文件,会提示有重复,直接覆盖就好。 将sql-labs-master文件拖到phpstudy/www目录下 打开浏览器访问“本机ip/sql-labs-master或localhost/sql-labs-master或127.0.0.1/sql-labs-master” 页面底部就是此靶…

Spring Boot项目误将Integer类型写成int来进行传参

在处理项目中Idea中无报错: 问题: localhost:8080/param/m2在浏览器中输入:localhost:8080/param/m2 产生报错: This application has no explicit mapping for /error, so you are seeing this as a fallback. Tue Feb 27 20:55…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的生活垃圾检测与分类系统(Python+PySide6界面+训练代码)

摘要:本篇博客详细讲述了如何利用深度学习构建一个生活垃圾检测与分类系统,并且提供了完整的实现代码。该系统基于强大的YOLOv8算法,并进行了与前代算法YOLOv7、YOLOv6、YOLOv5的细致对比,展示了其在图像、视频、实时视频流和批量…

【virtual Box】功能速通:安装 Windows 和 Ubuntu

文章目录 一、虚拟机1.1 概述1.2 virtual box概述 二、新建虚拟机、删除、注册三、虚拟机内部设置3.1 安装增强功能驱动3.2 分辨率问题3.3 网络链接方式 一、虚拟机 1.1 概述 虚拟机(Virtual Machine,VM)是一种软件实现的计算机系统&#x…

Qt篇——QTableWidget保存表格数据到Excel文件中,读Excel内容到QTableWidget

表格和excel例子如下图所示&#xff1a; 一、QTableWidget保存表格数据到Excel文件中 代码如下&#xff1a; &#xff08;pro文件中添加QT axcontainer&#xff09; #include <QAxObject>void MainWindow::saveTableToExcel() {QDateTime current_date_time QDateTi…

【计算机网络】Socket的OOBInline选项与UrgentData

Socket的OOBINLINE选项是用于处理TCP紧急数据的一个设置。TCP紧急数据通常指的是那些需要优先处理的数据&#xff0c;例如某些控制信息或关键数据。 OOB&#xff08;Out-of-Band&#xff09;表示带外数据&#xff0c;OOBInline是一个Socket选项&#xff0c;用于控制是否将接收…

基于GWO优化的LSTM多输入分类预测(Matlab)灰狼算法优化长短期神经网络分类预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分程序&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matalb平台编译&…

自动驾驶框架:自动驾驶汽车定位-感知-规划-决策-控制概述,按照我的架构图理解:决策决定的是速度,规划决定的是路径(架构理解推荐)

1.按照我的架构图理解&#xff1a;决策决定的是速度&#xff0c;规划决定的是路径 参考链接&#xff1a;【自动驾驶】运动规划丨速度规划丨自动驾驶速度规划及状态协调方法 2.下面是参考别人的理解&#xff1a; 自动驾驶汽车定位-感知-规划-决策-控制概述 规划-决策-控制知…

女儿的国风穿搭~粉绿两色你喜欢哪个?

法国皱绣花马甲和飘雅面料衬衫的组合 赋予古典新的诠释&#xff0c;别具一番韵味 衣服上是古典的山树绣花设计 精致典雅&#xff0c;上身立体又轻盈 做了粉绿两色&#xff0c;很适合春天的氛围

【王道数据结构】【chapter7查找】【P285t5】

线性表中各节点的检索概率不等时&#xff0c;可用如下策略提高顺序检索的效率&#xff1b;若找到指定的结点&#xff0c;则将该结点和其前驱结点&#xff08;若存在&#xff09;交换&#xff0c;使得经常被访问的结点尽量位于表的前端。试设计在顺序结构和链式结构的线性表盘上…

在正式项目中使用Improv配网及小程序配网工具

前面我们演示了使用.Net nanoFramework为ESP32进行蓝牙配网的简单演示&#xff0c;这个功能在实际项目中是非常有用的。当然&#xff0c;使用中我们还需要考虑一些其他的问题&#xff0c;比如如何将这个功能集成到我们的项目中&#xff0c;本文将详细介绍如何在正式项目中使用I…