首页 > 其他分享 >Docker容器基础知识

Docker容器基础知识

时间:2023-10-11 13:32:26浏览次数:36  
标签:容器 仓库 基础知识 镜像 Docker docker 运行

Docker容器基础知识

Docker 是一个流行的用 Go 语言开发的开源项目,基于Linux内核的cgroup、namespace及 AUFS 等技术,对进程进行封装隔离,由 Dotcloud 公司开发。Docker已成为容器行业的事实标准。

Docker是众多容器实现中最流行的技术,是容器技术的事实标准,其他知名的还有:rkt,  Podman,LXC,Containerd,Buildah 等等

Docker容器基础知识_docker

小陈发现一个有趣的事情,容器的英文是Container,有集装箱的意思。而Docker的中文翻译是码头工人的意思。那么,码头工人不就是搬运集装箱的吗?此外,Docker的Logo是一堆集装箱放在鲸鱼上,作为鲸鱼的docker,就是一个标准化的运输系统。

Docker核心概念

Docker 有三大核心概念,分别是容器(Container)、镜像(Image)和仓库(Repository)。

Docker容器基础知识_docker_02

  • 镜像类似虚拟机的镜像,通俗的理解就是安装文件,相当于是容器的模板,可以根据不同的镜像来创建不同的容器。镜像和容器的关系可以理解为面向对象中类和实例对象的关系。

Docker容器基础知识_镜像(Image)_03

  • 容器类似一个轻量级的沙箱,容器是根据镜像创建的应用运行实例,具体运行应用程序的一个进程,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。

Docker容器基础知识_Docker_04

  • 仓库类似代码仓库,是 Docker 集中存放镜像文件的场所。仓库有本地镜像仓库 Docker-Registry 和公共镜像仓库 Docker Hub,平时使用本地仓库的镜像,没有的话可以去公共镜像仓库下载。

可以用编程中面向对象的概念来做类比:镜像可以看成一个容器可以看做是类的实例化对象。一个类可以有多个对象。同理,一个镜像可以有多个容器。容器是由镜像实例化而来。简单来说,镜像是文件,容器是进程,仓库是保存镜像的地方

 

Build, Ship and Run Any App, Anywhere

Docker的主要目标是build、ship and run any app,anywhere,即通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用组件级别的一次封装、到处运行,即在任何平台都可以构建、运输、运行任何应用

Docker容器基础知识_容器(Container)_05

Docker的build、ship和run的含义如下:

  • Build(构建镜像):镜像就像是集装箱,包括文件以及运行环境等资源。
  • Ship(运输镜像):主机和仓库间运输,这里的仓库就像是超级码头一样。
  • Run (运行镜像):运行的镜像就是一个容器,容器就是运行程序的地方。

 

Docker的使用方式

Docker 在主流的操作系统和云平台上都可以使用,包括 Linux (如 ubuntu、Debian、CentOS、Redhat 等)、MacOS 和 Windows 操作系统,以及 阿里云 等云平台(Aliyun.com)。

Docker容器基础知识_镜像(Image)_06

推荐尽量使用 Linux 操作系统来运行 Docker,因为目前 Linux 操作系统对 Docker的支持是原生的,使用体验最好。

我们可以在阿里云云服务器ECS上,很便捷的部署配置一个Docker开发环境,以快速体验Docker容器的使用。Docker的安装比较简单,主要步骤如下(具体步骤将会在实验环节进行实践):

  1. 在阿里云(Aliyun.com)开通一台云服务器ECS
  2. 在ECS上安装必要的系统工具
  3. 添加镜像软件源信息
  4. 加入镜像源地址
  5. 安装并更新Docker-CE
  6. 查看Docker的版本,确认安装成功。若能正常显示版本信息,则安装成功
  7. 启动Docker服务
  8. 设置Docker为开机自启动

Docker基础命令

以下是Docker的一些常用命令,可以帮助初学者快速熟悉和使用Docker。

命令

指令说明

docker ps

检查容器正在运行列表

docker run

容器运行

docker rm

删除容器

docker exec

在运行的容器中运行额外的进程

docker create

创建一个尚未启动的容器,start 启动创建了的容器

docker wait

阻塞对容器的其他调用方法,直到容器停止后退出

docker stop

停止一个运行中的容器

docker start

启动一个或多个已经被停止的容器

docker top

显示主机为每个容器中的进程所分配的PID

docker diff

查看安装容器镜像时的改动,返回文件改动列表

docker inspect

显示docker为该容器保留的所有元数据(一个json文件)

docker commit

向镜像提交一个新的文件记录

通过Docker命令,运行一个容器一般情况下只需要三步:

  1. pull:从镜像仓库中将相应的镜像下载下来;
  2. list:当镜像下载完成之后就可以通过docker images 来查看本地镜像,会列出一个完整的镜像列表,可以在列表中选中想要的镜像;
  3. run:当选中镜像之后,就可以通过 docker run 来运行这个镜像,得到想要的容器。当然可以通过多次运行得到多个容器。

Docker容器基础知识_容器(Container)_07

通过docker指令运行容器

 

标签:容器,仓库,基础知识,镜像,Docker,docker,运行
From: https://blog.51cto.com/u_7575433/7809828

相关文章

  • NAS之间docker无损数据怎么迁移,无需代码操作,简简单单。
    情况:你一定遇到过这么一个棘手的问题,在群晖上自己配置或者是请人配置的docker应用,想换群晖或者转移应用一定想知道怎么样才能无损迁移docker应用。我也比较爱折腾,docker通常也设置好了。一但换了机器docker迁移就很麻烦,文档资料倒是可以复制过去就行,docker不能直接复制,复制后会......
  • Docker
    安装https://docs.docker.com/engine/install/ubuntu/运行全部容器dockercomposeup-d单个容器dockerbuild-tflow.#.表示工作目录文件,创建imagedockerrun-p3000:3000......
  • docker - none
    四、NONE:$dockerrun-d--nametest4--networknonebusybox/bin/sh-c"whiletrue;dosleep3600;done"$dockernetworklsNETWORKIDNAMEDRIVERSCOPE6ffb3a36e003nonenulllocal$dockerinspect6ffb3a36e003"Conta......
  • Oracle 简介与 Docker Compose部署
    最近,我翻阅了在之前公司工作时的笔记,偶然发现了一些有关数据库的记录。当初,我们的项目一开始采用的是Oracle数据库,但随着项目需求的变化,我们不得不转向使用SQLServer。值得一提的是,公司之前采用的是Docker技术,所有数据库的部署都是通过DockerCompose来完成的。在今天的文......
  • docker入门加实战—从部署MySQL入门docker
    docker入门加实战—从部署MySQL入门dockerdocker部署MySQL输入如下命令:dockerrun-d\--namemysql\-p3306:3306\-eTZ=Asia/Shanghai\-eMYSQL_ROOT_PASSWORD=123\mysql部署成功截图如下:当执行命令后,Docker做的第一件事情,是去自动搜索并下载了MySQL,......
  • Docker的安装与使用
    一、查看Linux内核与版本    空的服务器需要查看Linux内核与版本,我这里使用的是centos7.9。Docker需要运行在Centos7上要求系统64位,系统内核版本为3.10以上。    1、查看系统内核       uname -a    2、查看系统版本    ......
  • Docker安装Kibana
    环境DebianDocker一、安装kibana#查看看安装的版本dockersearchkibana#安装指定版本dockerpushkibana:8.10.2#查看是否已安装dockerimagels二、启动kibanadockerrun-d\--namekib01\--netes-net\-p5601:5601kibana:8.10.2访问http://xxxx......
  • docker搭建pypi服务,实现python包版本永久保存
    1.宿主机上安装htpasswdpipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplehtpasswd2.使用htpasswd生成账户和密码htpasswd-schtpasswd.txttestuser3.拉取pypiserver镜像dockerpullpypiserver/pypiserver4.使用docker安装pypi容器4.1.创建数据卷docker......
  • Dockerfile 中的 CMD 与 ENTRYPOINT
    1、概述CMD和ENTRYPOINT指令都用于定义容器启动时执行的命令,单从功能上来看,这两个命令几乎是重复的,单独使用其中的一个就可以实现绝大多数的用例。尽管如此,它们在某些情况下具有不同的用途和优势。这篇文章旨在澄清它们的用法,以帮助你在实际应用中做出明智的选择,避免混淆。2......
  • 【2023年10月10日】STF60_docker_Day01(下午)
     STF60_docker_Day01(下午)容器运行先导入镜像 dockerload</home/centos-lamp.tar 给导入的镜像命名 dockertag0b8dnickistre/centos-lamp.tar 交互式运行容器一般就是临时用用,看看配置文件等等dockerrun-it镜像id或镜像名:tag版本/bin/bash或bash......