centos7的docker安装与简单介绍

news2025/1/31 20:51:23

docker的基本组成(三要素)

  • 镜像
  • 容器
  • 仓库

理解:镜像可以理解成一个类,容器就是用这个类new出来的对象,仓库就是放镜像文件的。docker本身是容器运行载体或管理引擎

安装

  1. 安装gcc
yum -y install gcc
  1. 安装需要的软件包

设置稳定的镜像仓库

yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件包索引,使得镜像下载快

yum makecache fast
  1. 安装 Docker Engine、containerd 和 Docker Compose
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 启动docker
systemctl start docker
  1. 测试
docker version

使用hello-world镜像测试docker
本地没有,他会去远程镜像库拉取一个hello-world镜像

docker run hello-world
  1. 停止docker
systemctl stop docker

docker的常用命令

查看docker概要信息

docker info

设置docker开机启动

systemctl enable docker

查看帮助文档

docker --help

列出本地主机上的镜像

docker images

查看远程镜像库是否有某个镜像

docker search hello-world

拉取镜像到本地

docker pull 镜像名称[:tag]

删除某个镜像

docker rmi 名字或id

docker rmi -f 名字或id

容器命令

通过docker run 启动容器有一些参数

docker run --name=容器名字

//后台运行容器并返回id
docker run -d

//启动操作容器的终端
docker run -it

//指定端口映射
docker run -p 8080:8080

罗列所有启动着的容器

docker ps

退出容器

在容器控制台输入 exit : 会停止容器
ctrl+p+q : 不会停止容器

停止容器

docker stop id或名字

强制停止

docker kill id或名字

重启容器

docker restart id或名字

删除已经停止的容器

//注意:rmi 是删除镜像
docker rm id

退出了容器,重新进入正在运行的容器交互界面

//一般用这个,输入exit不会停止容器	
docker exec -it id bash

docker attach id

将容器内的文件拷贝到主机

docker cp id:容器内路径 主机路径

将容器导出成一个tar

docker export id > 文件名.tar

将tar文件导入为一个镜像

cat	文件名.tar | docker import - 镜像用户/镜像名:版本号

commit镜像(将自己的容器commit到本地镜像库)

docker commit -m="描述信息" -a="作者" 容器id 要创建的目标镜像名:版本

在这里插入图片描述

容器数据卷

容器运行中可能有重要的数据,为了对数据进行保护,需要进行备份。容器数据卷就是通过映射的方式将容器内的数据备份+持久化到本地主机目录上。主机上修改文件,容器内对应映射也会修改,互通的。

运行一个带有容器卷存储功能的容器

docker run -it --priviledged=true -v /主机绝对路径目录:/容器内目录 镜像

Dockerfile

Dockerfile是用来构建镜像文件的文本文件,它可以看做一个清单,docker通过这个清单构建镜像。

Dockerfile指令

  • FROM
    指定一个已经存在的镜像作为模版
  • MAINTAINER
    镜像维护者
  • RUN
    容器构建时需要执行的命令,是在docker build时运行
  • EXPOSE
    当前容器对外暴露的端口
  • WORKDIR
    指定容器创建后,终端默认登录进来的工作目录;这是设置RUN,CMD,ADD等指令的工作目录
  • USER
    默认root
  • ENV
    用于构建镜像中设置环境变量。
    如ENV MYPATH /usr/local,这个环境变量可以在后续任何RUN指令中使用
  • VOLUME
    容器数据卷,用于数据保存和持久化工作
  • ADD
    将主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
  • COPY
    类似于ADD,拷贝文件和目录到镜像中
  • CMD
    设置容器的启动命令,指定容器启动后要干的事情,是在docker run时运行
  • ENTRYPOINT
    设置容器的入口程序

编写好Dockerfile文件后,构建镜像

//注意末尾有个点(.)
docker build -t 镜像名字:tag .

docker-compose 容器编排

当docker容器多了,可以用compose工具来进行管理,需要定义一个yaml配置文件,docker-compose.yaml,写好多个容器之间的调用关系,然后,只需要一个命令就能同时启动和关闭这些容器

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

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

相关文章

Vcpkg介绍及使用

Vcpkg用于在Windows、Linux、Mac上管理C和C库,极大简化了第三方库的安装,它由微软开源,源码地址:https://github.com/Microsoft/vcpkg,最新发布版本为2023.04.15 Release,它的license为MIT。 在windows上安…

[解决方案]springboot怎么接受encode后的参数(参数通过=拼接)

springboot怎么接受encode后的参数(拼接& springboot怎么接受encode后的参数(拼接&)问题出现原因发送encode后的值在postman里面的情况这个时候该如何接受呢(encode后的值接受)controller层的代码用到的工具类CRequest springboot怎么接受encode…

软考A计划-系统架构师-官方考试指定教程-(14/15)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

数组删除元素使用remove最优的方法

Array.prototype.remove function(from, to) { var rest this.slice((to || from) 1 || this.length); this.length from < 0 ? this.length from : from; return this.push.apply(this, rest); };

Anaconda安装及入门教程(Windows、Ubuntu)

文章目录 安装Anaconda3UbuntuWindows 使用换源设置不自动启用conda环境显示环境创建环境激活环境查找某个包的版本安装某个版本的包 虚拟环境中安装包删除虚拟环境删除特定的包复制环境设置代理UbuntuWindows 使用 conda-pack 离线导入、导出环境安装conda-pack导出导入 安装A…

简单使用nacos、openFeign和Sentinel(建议看源码和截图一起看)

1、Nacos 1、下载nacos&#xff0c;可以从结尾获取压缩包和源码 2、下方图例是两个服务程序注册成功到注册中心&#xff0c;并且配置从配置中心拉取&#xff0c;成功访问数据库 3、nacos中配置项里的内容 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driv…

在linux上做移动开发必须知道这五个

导读随着越来越多的人依靠手机进行各种业务&#xff0c;移动应用开发的重要性也在不断增加。虽然他们与桌面应用程序有很多相似之处&#xff0c;但移动应用程序本身也具有一系列挑战和特殊性。因此&#xff0c;希望在当前市场找到有利就业的程序员将需要利用和发展当前需求的技…

第五章 结构化设计

结构化设计的概念 1. 设计的定义 一种软件开发活动&#xff0c;定义实现需求规约所需的软件结构。 结构化设计分为&#xff1a; (1)总体设计&#xff1a;确定系统的整体模块结构&#xff0c;即系统实现所需要的软件模块以及这些模块之间的调用关系。 (2)详细设计&#xff1a;…

从Referer到XMLHttpRequest:探究Web安全中的重要知识点

目录 Referer 概念 Referrer-policy&#xff08;可以一定程度上防御CSRF攻击&#xff09; 同源 iframe sandbox(沙箱): cookie的原理&#xff1a; 如何设置Referrer&#xff1f; 盗链 盗链的工作原理 三种情况下可以引用图片&#xff1a; XMLHTTPRequest AJAX&…

初出茅庐的小李博客之STM32F103实现CAN通信

CAN通信基础知识 参考上一篇博客 https://editor.csdn.net/md/?articleId131026450 原理图 转换芯片是 TJA1050 代码实现思路 发送思路&#xff1a;定时发送 按键测试发送 接收思路&#xff1a;中断接收 CAN代码实现 第一步 定义了两个全局变量TxMessage和RxMessage&am…

Unity如何实现Microphone判断录入音频的频率是低音还是高音

前言 Unity中使用Microphone可以通过麦克风录制AudioClip音频,我们可以通过它实现录音功能,然后可以通过录入的音频数据对音频进行分析,比如音量大小,频率高低,等等。 我们今天就来分析一下音频的高音低音。 如何判断高音低音 科普:一般人们习惯将音响划分一定的频段…

参数估计(点估计和区间估计)

参数估计&#xff08;点估计和区间估计&#xff09; 1.1 点估计 点估计的理解示意图 下图中样本均值就是对总体均值的点估计 1.1.1 矩估计 关于什么是矩&#xff1f;可以参考马同学。传送门&#xff1a;如何理解概率论中的“矩”&#xff1f; 根据大数定律&#xff0c;样本…

007: vue中修改el-select选中颜色不生效的办法

第007个 查看专栏目录: 按照VUE知识点 ------ 按照element UI知识点 echarts&#xff0c;openlayers&#xff0c;cesium&#xff0c;leaflet&#xff0c;mapbox&#xff0c;d3&#xff0c;canvas 免费交流社区 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏…

apm装机教程(一):无人车

文章目录 前言一、下载固件二、设置参数 前言 APM4.2.3 差速小车 pix2.4.8 MP地面站 一、下载固件 pix2.4.8使用的是fmuv3的固件&#xff0c;可以在官网上下载 https://firmware.ardupilot.org/Rover/stable-4.2.3/fmuv3/ 或者从我的网盘下载 链接&#xff1a;https://pan.b…

【算法题】面试题 01.01. 判定字符是否唯一

题目来源&#xff1a;《程序员面试金典&#xff08;第 6 版&#xff09;》 1、Problem: 面试题 01.01. 判定字符是否唯一 文章目录 面试题 01.01. 判定字符是否唯一一、题目描述二、解决方案&#xff08;一&#xff09;方案一1、解题思路2、解题方法3、复杂度4、代码实现 &…

数据分析手册-R语言

1 数据准备 1.1 数据录入 1.1.1 R中导入数据 &#xff08;1&#xff09;导入excel 1.2 修改工作路径 https://wenku.baidu.com/view/2785ff37b4360b4c2e3f5727a5e9856a561226c9.html 1.3 如何计算样本量 https://www.bilibili.com/video/BV19t411u7TW?spm_id_from333.…

亚马逊云科技Serverless构建的实时数仓解决方案,助力猎豹降低30%成本

也许你也听过这样一句话&#xff1a;“21世纪什么最贵&#xff1f;人才&#xff01;”当数字经济全面席卷而来&#xff0c;这个问题的答案不可置否地变为了“数据”。通过数据分析获取近乎实时的洞察&#xff0c;以驱动业务的全流程&#xff0c;是企业数字化转型的必经之路。借…

【网络编程】计算机网络基础知识总结 | 运输层 |TCP协议

文章目录 前言一、计算机网络层次结构二、网络层三、运输层3.1、TCP/IP协议介绍3.2、端口&#xff08;协议端口号&#xff09;3.3、套接字3.4、TCP实现原理3.4.1、TCP的特点3.4.2、停止等待协议3.4.3、滑动窗口协议3.4.4、拥塞控制3.4.5、TCP连接的三个阶段 3.5、UDP实现原理 前…

day50_mybatis

今日内容 0 复习昨日 一、分页插件 二、ORM映射【重点】 三、多表联查 【重点】 四、动态SQL 【重点】 五、$和# 零、复习昨日 mybatis orm框架,作用于持久层,高效开发,只关注sql,其他不用关心 思考MyBatis到底帮你省了哪些事情? jdbc第四步sql自己编写之外,其他mybatis都做了…

C++标准库模板(STL)-输入/输出库

C 包含两个输入/输出库&#xff1a;现代的、基于流的 I/O 库和 C 风格 I/O 函数的标准集合。 基于流的 I/O 基于流的输入/输出库围绕抽象的输入/输出设备组织。这些抽象设备允许相同代码处理对文件、内存流或随即进行任意操作&#xff08;例如压缩&#xff09;的自定义适配器…