快速入门Docker

news2024/11/14 19:11:32

目录

Docker简介

Dokcer环境配置

Docker HelloWorld运行原理解析

        阿里云镜像仓库

常用命令

        基本命令

        镜像命令

        容器命令


Docker简介

Docker 是基于Go语言实现的一个开源项目,通过对应组建的封装,分发,部署,运行等生命周期的管理,使用户的应用及其运行环境“一次镜像,处处运行”,其实是一个应用容器,类似于一个虚拟机。

通过以容器的形式将应用程序及其所有依赖项打包成一个可运行环境就是image镜像文件就可发布到 Linux 机器,通过该image镜像文件生成Docker容器实例就可运行。

便于应用程序的交付部署,省去了以往应用在一个新环境中运行的前期工作准备各种基础的工具的安装及版本不一致导致的应用运行异常。

简单来说,Docker是一个新一代虚拟化技术

 

Docker官网:Docker: Accelerated, Containerized Application Development

Docker的应用场景

Web 应用的自动化打包和发布。

自动化测试和持续集成、发布。

在服务型环境中部署和调整数据库或其他的后台应用。

从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

Docker 的优点

1、简化程序:

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

2、避免选择恐惧症:

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

3、节省开支:

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

Docker的架构

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

 

Docker

面向对象

容器

对象

镜像

 

 

Docker 镜像(Images)

是用于创Docker 镜像建 Docker 容器的模板。

Docker 容器(Container)

容器是独立运行的一个或一组应用。

Docker 客户端(Client)

Docker 客户端通过命令行或者其他工具使用 Docker API (Develop with Docker Engine API | Docker Documentation) 与 Docker 的守护进程通信。

Docker 主机(Host)

一个者物理或虚拟的机器用于执行 Docker 守护进程和容器。

Docker 仓库(Registry)

Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。

Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。

Docker Machine

Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

Dokcer环境配置

#查看内核

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

 

Docker HelloWorld运行原理解析

运行  docker run hello-world

本地仓库未能找到该镜像,然后去远程仓库寻找以及下载该镜像;

然后我们再执行该命令:

 

 

出来了 Hellowold。我们具体来分析下 执行原理和过程;

从左到右 client客户端,Docker运行主机,远程仓库;

docker build ,pull,run分别是 构建,拉取,运行命令,后面再细讲;

中间Docker主机里有 Docker daemon主运行线程,以及Containers容器,容器里可以运行很多实例,(实例是从右侧Images镜像实例化出来的)Images是存储再本地的镜像文件,比如 Redis,Tomat这些镜像文件;

右侧是Registry镜像仓库,默认远程镜像仓库 Docker Hub  不过是国外主机,下载很慢,不稳定,所以我们后面要配置成阿里云仓库镜像地址,稳定快捷;

执行 docker run hello-world的过程看如下图例:

阿里云镜像仓库

Docker默认远程仓库是Docker Hub

比如我们下载一个大点的东西,龟速

由于是国外主机,类似Maven仓库,慢得一腿,经常延迟,破损;

所以我们一般都是配置国内镜像,比如阿里云,网易云等;推荐阿里云,稳定点;

配置步骤如下:

1,登录进入阿里云镜像服务中心,获取镜像地址

进入阿里云容器镜像服务地址:

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

使用你的淘宝账号密码登录(手机号,支付宝也可以)

 

 先进入docker文件夹,在编辑 daemon.json文件,默认是没有该文件的,直接vi即可

cd /etc/docker/
vi daemon.json

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

保存并退出以后在执行下面两个命令

systemctl daemon-reload
systemctl restart docker

换源成功之后下载一个mysql测试一下会发现比之前快很多

 

 

常用命令

基本命令

#启动Docker

systemctl start docker

镜像命令

#查询
docker images ...
docker search ...
#新增
docker pull ...
docker push ...
#删除
docker rmi ...
docker rmi -f ... 

容器命令

#新增
docker run
docker run -di 
docker run -it
docker run --name

@查询
docker ps
docker ps -a

#删除
docker rm
docker rm -f

#进入容器
docker exec -it tomcat1 /bin/bash

 

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

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

相关文章

如何创建多语言WordPress网站[专家建议]

如果您想有效地接触广泛的国际受众,那么您应该考虑制作一个多语言WordPress网站。您知道吗,61.1% 的网站是英文的,但全球只有 25.9% 的用户实际上可以在线使用这种语言。 多语言功能意味着创建站点的两个或多个语言实例,在大多数…

anaconda安装pytorch

1.需不需要另外创建一个新环境 答案是:可以不需要 所以我的做法是直接在base环境中安装的pytorch 2.python、torch、torchvision版本对应 我的是python3.9,安装的是cuda11.3–torch1.10.1,所以按理来说torchvision为0.11.2 3.离线安装tor…

P4的exercises实现原理

今天介绍一下p4的tutorials-master\utils如何将tutorials-master\exercises下各个小实验的实现,有助于以后自己构建mininet并配置p4交换机,通过本博客可以简单了解: Makefile是如何实现相关的实验的基于p4的mininet如何搭建 1.Makefile干了什…

python-(6-4-3)爬虫---re解析案例

文章目录一 需求二 总体思路1)从网址定位到2022必看热片2)从2022必看热片定位到子页面的链接地址3)请求子页面的链接地址,拿到我们想要的下载地址三 分析步骤1)从网址定位到2022必看热片2)从2022必看热片定…

开关电源环路稳定性分析(05)-传递函数

大家好,这里是大话硬件。 经过前面4篇文章的梳理,估计很多人已经等不及了,什么时候可以开始环路的分析。为了尽快进入到大家关心的部分,这一讲我们正式进入环路分析的第一部分——传递函数。 传递函数,简单的理解就是…

立体车库管理系统

1、立体车库主界面 左侧为菜单栏中间为监视页面上方为实时报警页面,上方第二页为设备指令,第三页为升降机监测,第三页为穿梭车监测2、立体车库设备状态显示 通用状态显示升降机1#2#和穿梭车1#2#3#的缓存指令编号,点击按钮可以清楚…

【设计模式】32.结构型模式-组合模式(Composite)

一、描述 首先,看一个数据结构: 在平时开发过程中,我们的菜单目录、文件夹目录等都有类似如上的实体结构,其中composite代表父级节点,leaf代表叶子节点,composite可以有子节点,但是leaf下没有…

一文读懂ChatGPT模型原理

(本文是ChatGPT原理介绍,但没有任何数学公式,可以放心食用) 前言 这两天,ChatGPT模型真可谓称得上是狂拽酷炫D炸天的存在了。一度登上了知乎热搜,这对科技类话题是非常难的存在。不光是做人工智能、机器学习…

ORB-SLAM2 ---- Tracking::TrackWithMotionModel函数

目录 1.函数作用 2.步骤 3.code 4.函数解释 4.1 更新上一帧的位姿;对于双目或RGB-D相机,还会根据深度值生成临时地图点 4.2 根据之前估计的速度,用恒速模型得到当前帧的初始位姿。 4.3 用上一帧地图点进行投影匹配,如果匹…

JDK版本对应其major.minor version,看这一篇就够啦(附java历史版本下载地址)

文章目录前言JDK版本对应其major versionJDK历史版本下载地址前言 今天博主在学习SpringBoot,启动项目时遇到这样一个问题 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project springbo…

[附源码]JAVA毕业设计企业信息安全评价系统(系统+LW)

[附源码]JAVA毕业设计企业信息安全评价系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目…

[附源码]Python计算机毕业设计Django小区疫情事件处理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Git学习笔记 Git Gitee GitHub GitLab

目录 Git GitHub Gitee码云 GitLab Git 概述 何为版本控制 为什么需要版本控制 集中式版本控制工具 分布式版本控制工具 Git和代码托管中心 Git命令 git init命令 git config git status 查看 git 状态 git rm --cached xx git commit -m “备注” xx git reflo…

PHP代码审计系列(二)

PHP代码审计系列&#xff08;二&#xff09; 本系列将收集多个PHP代码安全审计项目从易到难&#xff0c;并加入个人详细的源码解读。此系列将进行持续更新。 strcmp比较字符串 源码如下 <?php $flag "flag"; if (isset($_GET[a])) { if (strcmp($_GET[a], …

DBCO-PEG3-Maleimide,Mal-PEG3-DBCO,二苯并环辛炔-三聚乙二醇-马来酰亚胺

​ 中英文名&#xff1a; CAS号&#xff1a;N/A| 英文名&#xff1a;DBCO-PEG3-Maleimide&#xff0c;Mal-PEG3-DBCO |中文名&#xff1a;二苯并环辛炔-三聚乙二醇-马来酰亚胺物理参数&#xff1a; CASNumber&#xff1a;N/A Molecular formula&#xff1a;C34H38N4O8 Molecul…

[附源码]计算机毕业设计绿色生鲜Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

一键免密登录云平台!ZStack Cloud 4.5.0等你来解锁……

近日&#xff0c;ZStack Cloud 4.5.0发布&#xff0c;新增支持多种标准单点登录&#xff08;SSO&#xff09;协议。云平台现可对接OIDC/OAuth2/CAS三种协议的统一身份认证系统&#xff0c;使认证系统中的用户可一键免密登录云平台&#xff0c;大大提高了云平台的访问效率和安全…

在 Git Bash 中为 vim 设置 Dracula 配色

因为本人一直习惯了用 Jetbrains 家的产品&#xff0c;而且一直独钟 Dracula 配色&#xff0c;因此想要在 Git Bash 中为 vim 配一款 Dracula 配色。本博客将详细介绍如何为 vim 配置暗系主题 Dracula。 一、安装 Dracula 在 Dracula 的官网其实已经给出了关于如何在 vim 中配…

Pygame入门

目录一、初始化pygame环境&#xff08;一&#xff09;在pycharm中新建一个工程&#xff08;二&#xff09;安装pygame&#xff08;三&#xff09;测试安装是否成功二、pygame基础&#xff08;一&#xff09;pygame初始化&#xff08;二&#xff09;设置显示界面&#xff08;三&…

[附源码]计算机毕业设计JAVA在线二手车交易信息管理系统

[附源码]计算机毕业设计JAVA在线二手车交易信息管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; S…