Linux安装Docker与基本指令

1、什么是Docker

        Dokcer是一种开源平台,主要用于创建、部署和管理容器化应用程序,它通过将应用程序以及所有的依赖打包到一个轻量级的可移植的容器中,使得应用可以在任何环境中一致的运行!

 1.1、Docker的优点

  • 一致性和可移植性
  1. 跨环境一致性:Docker 容器在开发、测试和生产环境中运行时保持一致性,避免了“在我机器上可以运行”的问题。
  2. 可移植性:容器可以在不同的操作系统和硬件上运行,只要支持 Docker 的环境就能运行容器。
  • 轻量级和高效
  1. 快速启动:容器启动速度通常比虚拟机快,因为容器共享宿主机的操作系统内核,不需要额外的操作系统开销。
  2. 资源利用率:容器消耗的资源比虚拟机少,因为它们不需要完整的操作系统。
  • 易于版本控制和管理
  1. 镜像版本控制:Docker 镜像可以标记和版本控制,方便管理和回滚到之前的版本。
  2. 镜像仓库:可以通过 Docker Hub 或私有仓库存储和共享镜像,便于团队合作和分发。
  • 简单化部署和拓展
  1. 一致的部署:容器化应用程序可以在不同环境中以相同的方式进行部署,简化了部署过程。
  2. 快速扩展:容器可以快速启动和停止,便于动态调整应用的规模,以适应不同的负载需求。
  • 提高开发效率
  1. 开发环境一致性:开发者可以在本地使用 Docker 容器创建与生产环境一致的开发环境,减少环境差异导致的问题。
  2. 简化依赖管理:应用及其所有依赖项都被封装在容器中,减少了环境配置和依赖冲突的问题。

1.2、Docker的用途

  • 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境
  • 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容
  • 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构

1.3、Docker与虚拟机的区别

  • VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,然后再安装应用

  • Docker在宿主机的操作系统上创建Docker引擎,直接通过宿主机的操作系统调用硬件资源,而不是虚拟化操作系统和硬件资源,所以占用资源更少,性能更高。

  • 对比图

特性 DockerVM
启动速度秒级分钟级
硬盘使用MBGB
性能接近原生弱于原生
系统支持单机可支持数百甚至数千几十个

2、Docker的核心组件

  1. 镜像(Image)
  2. 容器(Container)
  3. 仓库(Repository)
  4. Docker客户端(Docker Client)
  5. Docker守护进程(Docker daemon)

  1. 镜像(Image)

    • 定义:镜像是一个包含应用程序及其所有依赖项的只读模板。它是创建 Docker 容器的基础。
    • 作用:镜像用于打包和分发应用程序,使其可以在任何支持 Docker 的环境中一致地运行。镜像通常由 Dockerfile 构建,Dockerfile 描述了创建镜像所需的所有步骤和依赖项。
  2. 容器(Container)

    • 定义:容器是镜像的一个运行实例。它是一个轻量级、独立的可执行软件包,包含了应用程序及其所有必要的环境配置。
    • 作用:容器提供了一个隔离的环境,确保应用程序在不同环境中可以一致地运行。容器具有自己的文件系统、网络配置和进程空间,可以在多个容器之间共享宿主机的内核。
  3. 仓库(Repository)

    • 定义:仓库是存储和分发 Docker 镜像的地方。仓库可以是公共的(如 Docker Hub)或私有的。
    • 作用:仓库允许用户上传、存储和共享镜像。镜像仓库可以用来集中管理镜像版本,方便团队成员之间共享镜像,或用于生产环境的镜像管理。
  4. Docker 客户端(Docker Client)

    • 定义:Docker 客户端是用户与 Docker 进行交互的命令行界面(CLI)。它发送用户命令给 Docker 守护进程,并显示结果。
    • 作用:Docker 客户端用于创建、管理和操作 Docker 容器和镜像。用户通过 Docker CLI 可以执行如 docker rundocker build 和 docker push 等命令。
  5. Docker 守护进程(Docker Daemon)

    • 定义:Docker 守护进程是 Docker 的后台服务,负责管理 Docker 容器和镜像的生命周期。
    • 作用:Docker 守护进程接收 Docker 客户端的请求,创建、启动、停止和删除容器,以及构建和管理镜像。它还负责与镜像仓库的交互,拉取和推送镜像。

3、Docker的安装

        3.1、CentOS安装Docker

        1)yum包更新到最新

yum update

        2)安装yum-util, 该包提供yum-config-manager功能

yum install -y yum-utils

        3)设置docker的源

yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)可以任选其一

        4)安装docker, yum install docker-ce-版本号

yum install docker-ce-18.06.3.ce

        5)查看docker版本号,验证

docker version

        6)启动docker

systemctl start docker

       7)设置自启动 

systemctl enable docker

       8)配置镜像加速器

        配置docker
        在/etc/docker目录下创建daemon.json配置文件

vim /etc/docker/daemon.json

        文件内容如下     注意:最新可能的docker镜像仓库配置

{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com/","https://ccr.ccs.tencentyun.com/","https://docker.m.daocloud.io/"]
}

        重新加载daemon

systemctl daemon-reload

        重启docker

systemctl restart docker

      3.2、Ubuntu安装Docker

1)卸载可能存在的旧版本

apt-get remove docker docker-engine docker-ce docker.io

2)更新apt包索引

apt-get update

3)安装以下包以使apt可以通过HTTPS使用存储库(repository)

apt-get install -y apt-transport-https ca-certificates curl software-properties-common

4)添加Docker官方的GPG密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

成功后应该显示OK

5)设置stable存储库

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

6)再更新一下apt包索引

apt-get update

7)安装最新版本的Docker CE

apt-get install -y docker-ce

8)验证
8.1)查看docker服务是否启动

systemctl status docker

或如下命令

service docker status

8.2)若未启动,则启动docker服务

systemctl start docker 或如下命令service docker start

以上在线安装方式,通过连接到官网可以安装最新的版本(目前的版本为19.04),也可以使用下面的方式从软件仓库直接安装

apt-get update && apt-get install  -y docker.io

这种方式安装的优点是简单,缺点是版本较低(目前是18.09)

4、镜像操作

4.1、镜像查找

docker search 镜像名称

如:

docker search rabbitmq

4.2、镜像下载

docker pull 镜像名称:标签

示例:

docker pull ubuntu:18.04
注:没有给标签,默认为latest

4.3、查看宿主机中的镜像

docker images

4.4、删除镜像

docker rmi 镜像或id

5、容器常用命令

镜像在docker生命周期中的构建阶段,容器则属于运行阶段,可以将容易理解为镜像的一个运行实例。

1)容器启动

先让我们来尝试启动第一个docker容器,docker run命令提供了docker容器的创建到启动的功能。使用该命令创建和启动容器也是docker的推荐做法。

#创建并启动一个ubuntu容器
sudo docker run -it ubuntu:18.04 /bin/bash

使用该命令时,如果镜像还没有下载,则docker会首先下载该镜像,然后执行创建并启动容器。具体参数说明如下:

  • -i 开启容器中的STDIN(标准输入流),能接受命令,可以理解为已交互模式启动容器
  • -t 为容器分配一个tty终端,即:分配一个命令行窗口, 有了这两个参数新创建的容器才能有一个交互式shell。
  • /bin/bash 参数告诉docker在容器中启动一个bash shell
  • 可以通过--name 参数为容器命名
  • 如果指定 -d 参数,则说明容器以守护进程形式启动
  • 可以使用 docker help run查看更详细的参数说明
  • 在容器中使用,“cat /etc/issue”可以查看到运行中的容器其实为ubuntu系统。

-i -t参数是我们创建一个交互式容器的最基本的参数,需说明的是所创建的容器是交互式的,而不是一个运行后台服务的容器。

创建容器还可以使用docker create命令,如:

docker create -it ubuntu:latest

参数与docker run命令相同,与docker run命令不同的是docker create命令创建的容器不会自动启动。

2)查看运行的容器

docker ps

3)容器的退出

退出时如果想继续运行容器:按顺序按【ctrl+p】,【ctrl+q】
如果不想继续运行:按【ctrl+d】或输入exit

如果不是运行于后台的服务容器,则在容器退出后回自动停止运行,此时通过docker ps命令查看不到容器信息,需要使用docker ps -a命令查看。

4)容器的停止与启动

启动

docker start 容器名或id的前模糊匹配

停止

docker stop 容器的名称或id的前模糊匹配

5)复制文件

复制文件可以分为从容器到宿主机的复制,和从宿主机到容器的复制
1)从容器到宿主机的复制, 容器 -> 宿主机
命令格式:docker cp 容器名或ID:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
示例:将test.js从容器里面拷到宿主机的/opt路径下面

docker cp 容器名:某个文件路径  宿主机的存储路径
如:
docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js  /opt

2)从宿主机到容器的复制, 宿主机 -> 容器
命令格式:docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
示例:如果宿主机已经实现了换源,则可以通过如下命令将宿主机的配置文件拷到容器中,实现ubuntu容器换源

6)进入容器

docker cp 宿主机文件的路径  容器名称:存储路径
如:
docker cp /etc/apt/sources.list  ubuntu:/etc/apt/

命令格式:docker exec -it 容器ID/容器NAME /bin/bash
示例:

docker exec -it 容器名或id前模糊匹配 /bin/bash

注意:只能进入运行中的容器。

6)查看容器信息

docker exec 容器名称或者id前模糊匹配 hostname
或者
docker exec 容器名称或者id前模糊匹配 env

推荐使用docker inspect命令查看容器信息,使用方式如下所示

 docker inspect 容器名或id的前模糊匹配

该命令以json的方式返回容器的信息,内容比较多,可以只查询一种一部分,示例如下:

docker inspect -f {{.Config.Hostname}} 容器的名称或者id的前模糊匹配

注:inspect使用的是go语言模板,详细资料请参考Go语言模板。

7)容器删除

命令格式:docker rm 容器ID,(与删除镜像的命令很像,只少个i,镜像删除docker rmi 镜像名)

参数:

  • -f, --force=false 是否强行终止并删除一个运行中的容器
  • -1, --link=false :删除容器的连接 ,但保留容器
  • -v, --volumes=false :删除容器挂载的数据卷

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大众集团25届校招社招网申入职SHL测评题库:综合能力测评、性格问卷、英语测评考什么?

恭喜您通过大众汽车(中国)科技有限公司的简历初。请点击下面的测评链接,在5天内完成测评,过期失效(例:3.11收到链接,3.15为最后一天有效期)。每位人选只有一次测评机会。 ​大众汽车入职测试细节: 1.性格问卷:25 分钟 2.综合能力:46 分钟&a…

upload-labs(Pass-18 ~ Pass-21)

1、Pass-18(条件竞争) 1、题目需要进行代码审计&#xff1a; <?php include ../config.php; include ../head.php; include ../menu.php;$is_upload false; $msg null;if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);//白名单$file_name $_FILES[upload_fil…

2024 MongoDB中国用户大会倒计时2天!请查收专属参会指南

距离2024 MongoDB中国用户大会即将开幕仅剩2天&#xff0c;我们非常期待与您共同探讨和分享最新的数据库技术与应用经验。为了确保您能够顺利参与本次会议&#xff0c;请查阅属于您的专属温馨提示&#xff01; 活动时间 8月31日09:00-17:30 签到开始&#xff1a;08:00 现场参…

嵌入式学习——ARM学习(2)——汇编学习

工具&#xff1a;Keil-uVision5 1、汇编 1.1 汇编的组成 指令&#xff1a;汇编语言的核心部分&#xff0c;表示 CPU 可以执行的操作&#xff0c;如数据传输、算术运算、逻辑运算等。 操作数&#xff1a;指令中用于指定操作对象的数据&#xff0c;可以是寄存器、内存地址或立即…

【Material-UI】Slider 组件中的 Discrete Sliders 详解

文章目录 一、Slider 组件概述1. 组件介绍2. Discrete Sliders 的特点 二、Discrete Sliders 的基本用法1. step 属性2. marks 属性3. valueLabelDisplay 属性 三、深入理解 Discrete Sliders 的配置1. 自定义刻度标记2. 限制可选值3. 设置较小的步长4. 始终显示值标签 四、应用…

惊叹:《黑神话:悟空》所在 Steam 发行平台遭网络狂袭,威胁流量猛增两万倍!

8月24日&#xff0c;对于《黑神话&#xff1a;悟空》的玩家而言&#xff0c;本应是尽情畅玩游戏发售后第一个周六的美好时光&#xff0c;然而在当日晚间&#xff0c;众多玩家却发现该游戏的主要发行平台Steam无法登录。很快&#xff0c;“#Steam崩了#”便冲上微博热搜榜。不少玩…

搭建FTP服务器,通过浏览器访问FTP服务器,测试终端上传的音频文件。

文章目录 引言I 搭建FTP服务器II 浏览器访问FTP文件PC端浏览器访问iphone-safari浏览器访问FTP设置Mac-Safari浏览器访问FTP设置III FTP基础知识FTP客户端数据连接: 被动模式(PASV)引言 需求: 通过浏览器访问,测试终端通过FTP上传的语音文件,支持直接播放语音文件。 建议…

Spring底层机制环境搭建

文章目录 1.模块创建和依赖引入1.聚合模块&#xff0c;下面有一个myspring2.查看父模块是否管理了子模块3.myspring模块引入基本包 2.进行环境搭建1.目录概览2.UserController.java3.UserService.java4.UserDao.java5.AppMain.java6.beans.xml7.测试8.配置UserController.java为…

gptk是什么意思?Mac电脑如何在crossover里安装gptk2.0测试版?借助GPTK玩《原神》《黑神话悟空》游戏

很人多都听说使用 gptk2.0 beta 可以让《黑神话&#xff1a;悟空》等游戏的帧数提高&#xff0c;但自己并不知道如何安装&#xff0c;下面就给大家说下如何在crossover里安装 gptk2.0 beta 。安装前请先确认自己的电脑里已经安装好了crossover软件。 Game Porting Toolkit 简介…

数字化转型升级探索(二)

在数字化转型升级的探索中&#xff0c;我们计划通过整合前沿技术如人工智能、物联网和大数据&#xff0c;全面改造传统业务流程&#xff0c;打造智能化、数据驱动的业务架构&#xff0c;实现从数据采集、处理到分析的全链条数字化&#xff0c;以提升决策效率、优化运营管理&…

stm32-USB-1

1. USB简介 USB&#xff0c; 英文全称&#xff1a;Universal Serial Bus&#xff0c;即通用串行总线 USB提供适合各种应用的传输协议&#xff0c;而且协议标准向下兼容 优缺点 2. USB2.0拓扑结构 USB是一种主从结构的系统&#xff0c;数据交换只能发生在主从设备之间&#…

【STM32】写Keil程序的注意事项

看正点原子的资料使用Keil写STM32程序的时候&#xff0c;总是在不断学习&#xff0c;不断探索。后续又学到啥再更新 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 目录 1 Keil设置 1.1 字体设置 1.2 快捷键设置 1.3 快速前往前一操作位置/后一操作位…

esp8266根据httpserver状态,调用网络唤醒,实现一键开机

esp8266根据httpserver状态&#xff0c;调用网络唤醒&#xff0c;实现一键开机 一.开发板程序二. 服务端三.服务端状态变更 一.开发板程序 #include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> #include <WiFiUdp.h> #include <ArduinoJson.h>/…

Autosar(Davinci) --- 创建一个OS TASK

目录 前言 一、认识OS 二、创建一个Basic Task 三、创建一个Extended Task 四、Task Mapping 五、生成代码 六、代码集成与编译 七、烧录&调试 八、Basic Task & Extended Task代码分析 前言 所有的runnable都是基于在TASK上运行的,那么我们这章就讲解,如何…

分享5款支持论文写作网站先稿后付的网站!

在当今学术研究和学术写作领域&#xff0c;AI论文写作工具已经成为不可或缺的助手。这些工具不仅能够提高写作效率&#xff0c;还能帮助研究人员生成高质量的论文内容。特别是那些提供“先稿后付”服务模式的网站&#xff0c;更是为用户提供了极大的便利和保障。以下是五款值得…

【Qt窗口】—— 状态栏

目录 1.1 状态栏的创建 1.2 在状态栏中显示实时消息 1.3 在状态栏中显示永久消息 状态栏是应用程序中输出简要信息的区域。⼀般位于主窗口的最底部&#xff0c;⼀个窗⼝中最多只能有⼀个状态栏。在Qt中&#xff0c;状态栏是通过QStatusBar类来实现的。在状态栏中可以显示的消…

2024118读书笔记|《岳阳楼记》——天高地迥,觉宇宙之无穷;兴尽悲来,识盈虚之有数

2024118读书笔记|《岳阳楼记》——天高地迥&#xff0c;觉宇宙之无穷&#xff1b;兴尽悲来&#xff0c;识盈虚之有数 爱莲说陋室铭小石潭记醉翁亭记赤壁赋桃花源记归去来兮辞木兰辞阿房宫赋滕王阁序岳阳楼记 《岳阳楼记》范仲淹&#xff0c;都是背过的古文&#xff0c;挺不错的…

并查集【算法 12】

并查集 (Union-Find) 的基础概念与实现 并查集&#xff08;Union-Find&#xff09;是一种用于处理不相交集合&#xff08;disjoint sets&#xff09;的数据结构&#xff0c;常用于解决连通性问题。典型的应用场景包括动态连通性问题&#xff08;如网络节点连通性检测&#xff0…

【STM32】FMC

FMC功能与FSMC类似&#xff0c;但比FSMC更强大&#xff0c;但仅在F4 / F7 / H7等高级一点的MCU上支持&#xff0c;F1不支持。虽然我的是F103&#xff0c;但顺便都看了。 大部分图片来源&#xff1a;正点原子HAL库课程 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 目…

Axure 9 使用

一、界面初识 二、基础功能 1.菜单栏 1.1文件 新建文件&#xff1a;axure9包含四种文件.rp代表原型文件&#xff0c;.rplib代表元件库文件&#xff0c;.rpteam 团队项目文件 .html 网页文件 偏好设置&#xff1a;备份&#xff0c;需要备份文件再从备份中恢复 创建项目团…