当前位置: 首页 > article >正文

OJ在线评测系统 在Linux虚拟机搭建Docker 概念 入门 安装

Docker的基本概念

为什么要用docker容器技术

为了提升系统的安全性 把不同的程序和宿主机进行隔离

使得某个程序 应用的执行不会影响到系统本身

docker技术可以实现程序和宿主机的隔离

容器可以理解成对一系列应用程序、服务和环境的封装 从而把程序运行在一个隔离的 封闭的 隐私的空间内 对外整体提供服务

可以把一个容器理解成一个新的电脑 定制化操作系统

镜像:用来创建容器的安装包 可以理解为给电脑安装操作系统的系统镜像

容器:通过镜像来创建的一套运行环境 一个容器内可以运行多个程序 可以理解为一个电脑实例

Dockerfile:制作镜像文件 可以理解为制作镜像的一个清单 类似于maven

镜像仓库:存放镜像的仓库 用户可以从仓库下载现成的镜像 也可以把做好的镜像放到仓库里面

推荐使用docker官方的镜像仓库

docker底层实现原理

太复杂

Docker 运行在linux内核上

CGroups 实现了进程能使用的资源隔离 底层是Linux CGroup命令

能控制进程使用的资源

Network 实现了容器的网络隔离 docker容器内部的网络互不影响

NameSpace 命名空间 可以那进程给在不同的命名空间下 每个容器可以有自己的命名空间 不同的命名空间下的进程互不影响

Storage 存储空间 容器内的文件是相互隔离的 也可以去使用宿主机的文件

安装docker

一般情况系 不建议在windows系统上安装docker

Windows本身就自带一个虚拟机叫WSL 但是不推荐在日常使用的电脑上安装

我们要下一个虚拟机

我们在window上安装docker会被告知WSL内核太老

我们要一个专业的 隔离的虚拟机软件

推荐使用虚拟机

我们这边选择的虚拟机是VMware Workstation Pro

这样就算是安装成功

Docker的常用操作

命令行

查看所有docker自带的命令

docker --help

查看具体子命令的用法

docker run --help

拉取镜像 从docker的远程仓库

docker pull hello-world

根据镜像创建容器实例

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

启动实例 得到容器实例containerId

sudo docker create hello-world

目前国区的docker源基本上全挂了

但是我找到了一个

描述信息 - 镜像详情 · OpenAtom Foundation (atomgit.com)

来自开放原子基金会

用控制台打开文件 并进行修改

sudo gedit xxx.yy 

我们都是从远程仓库拉取 进行复制 运行

拉取镜像源

sudo docker pull hub.atomgit.com/library/hello-world:latest

有了镜像源后 我们去创建一个docker实例

sudo docker create hub.atomgit.com/library/hello-world:latest

得到一个容器 container id 容器实例id

f8130f7753c987d84e9cf9946f2161ebabfef7f24026e55ba92606fdcd59a57b

之后我们可以查看容器状态

sudo docker ps -a

启动容器 直接用容器名称启动

sudo docker start serene_raman

查看运行日志

sudo docker logs serene_raman

删除容器实例

sudo docker rm serene_raman

删除镜像

sudo docker rmi serene_raman

推送镜像

sudo docker push image

http://www.kler.cn/a/323271.html

相关文章:

  • 【Linux内核剖析】深入分析inet_init的处理机制
  • 【ubuntu18.04】vm虚拟机复制粘贴键不能用-最后无奈换版本
  • Three.js PBR材质
  • 大模型(LLMs)进阶篇
  • mqtt学习笔记(一)
  • 图像深度与像素深度的辨析
  • 代码随想录算法训练营Day13
  • 代码为笔,合作作墨,共绘共赢画卷———未来之窗行业应用跨平台架构
  • 【论文阅读】StoryMaker | 更全面的人物一致性开源工作
  • element-plus中日历组件设置起始为周一
  • git配置ssh免密
  • 【JavaEE】——多重锁,死锁问题和解决思路
  • vue3学习记录-computed
  • OJ在线评测系统 后端判题机架构搭建 使用原生实现Java安全管理器环境隔离
  • python用两类循环嵌套打印正置九九乘法口诀表和倒置九九乘法口诀表
  • 网络资源模板--Android Studio 图书借阅App
  • 基于Hive和Hadoop的电信流量分析系统
  • 网站建设中,营销型网站与普通网站有什么区别
  • 第四周做题总结_数据结构_栈与应用
  • 分页查询的优化
  • 小爱心换着玩
  • 【python】横截面数据分析及可视化报告示例
  • 拉格朗日插值讲解与MATLAB例程
  • (24)k8s部署mysql
  • django基于python的房价分析可视化系统的设计与开发 h1y0i
  • 洗浴中心澡堂污水处理设备主要包括以下几个步骤