首页 > 其他分享 >通俗大白话理解Docker

通俗大白话理解Docker

时间:2024-07-02 13:58:46浏览次数:16  
标签:容器 大白话 Python sudo 镜像 Docker 通俗 docker

什么是Docker

Docker本质上是一种容器化技术,用于将应用程序及其所有依赖打包到一个标准化的单元中。这些单元(容器)可以在任何运行Docker的机器上运行。每个容器是相互隔离的,具有自己的文件系统、网络和进程空间。

以下是大白话的理解,也是我在理解Docker中的一些误区:

  • 之前大家都说Docker就像一个集装箱,就跟它的图标一样,可是在我之前的理解中,比如创建一个docker_A,然后mysql、redis、mongodb等都安装在这个docker_A里,当我再重新建一个docker_B,又可以安装一套mysql、redis、mongodb等工具进去,有点类似于python的虚拟环境。这似乎也符合集装箱的思想,打包到一个Docker中,但这其实这样理解Docker是不对的

  • Python虚拟环境是用于隔离Python项目的依赖,而**Docker容器是用于隔离整个应用程序及其所有依赖,包括操作系统级别的依赖。**Docker是可以跨服务器,跨平台的(PS:为了确保容器在不同环境中的稳定运行,可能需要对容器配置进行一些调整,Docker有提供工具)

  • 在Docker的使用中,通常遵循单一职责原则,这意味着每个Docker容器运行一个服务或应用程序。

  • 简单点说,你通过Docker镜像安装的Mysql、Redis都是独立的Docker,并不是放在一起才是一个Docker。

  • 容器通过镜像(images)来提供应用程序运行所需的最小环境,这些镜像可能包含操作系统的某些部分(如Linux发行版的用户空间),但通常为了效率和可移植性而进行了优化和裁剪。

  • 在一个宿主服务器上可以安装很多Docker,比如可以是Mysql、Redis等不同应用的Docker,也可以是多个Mysql应用的Docker。它们通过Docker网络互相通信。

  • 可能你还有疑问,安装Docker和宿主机的操作系统有没有关系。而实际上是没关系的,每个Docker镜像都是从一个基础镜像(通常是某个操作系统的轻量级版本)开始构建的,并且包含了该操作系统和应用程序所需的所有依赖和配置。 也就是你在安装Mysql的时候其实已经选择安装了支持它运行的操作系统版本。

这个要深入体会一下,以上是我的理解。

Docker的组成

  • 镜像(Image):
    镜像是一个只读模板,包含了创建Docker容器的指令。镜像可以基于一个基础镜像(例如Ubuntu),然后在其上安装应用程序和依赖。

  • 容器(Container):
    容器是镜像的运行实例。容器是轻量级的、独立的,确保应用程序能在任何环境中一致运行。

  • Docker仓库(Registry):
    Docker仓库用来存储Docker镜像。常见的公共仓库是Docker Hub。

Docker安装

参考我之前的文章:
Docker安装

一些Docker命令

# 查看镜像
docker images

# 检查正在运行的容器,sudo是获得超级管理员权限
sudo docker ps

# 停止容器
sudo docker stop mysql-container
sudo docker stop redis-container

# 启动容器
sudo docker start mysql-container
sudo docker start redis-container

# 删除容器
sudo docker rm mysql-container
sudo docker rm redis-container

Dockerfile

Dockerfile 是一个文本文件,用于定义 Docker 镜像的内容和构建步骤。它包含了一系列指令和参数,告诉 Docker 如何构建镜像,并指定在容器启动时如何运行这个镜像。

比如我们在部署一个项目的时候,我们可以通过设置Dockerfile来更方便的来部署和执行这个项目。

假设我们要创建一个运行简单Python应用程序的Docker镜像,Dockerfile的内容可能如下所示:

# 使用官方的Python基础镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 复制当前目录下的所有文件到容器的/app目录
COPY . /app

# 安装所需的Python依赖
RUN pip install --no-cache-dir -r requirements.txt

# 暴露应用运行的端口
EXPOSE 5000

# 设置容器启动时运行的命令
CMD ["python", "app.py"]

Dockerfile 指令解释
FROM:指定基础镜像。这里使用的是官方的Python 3.8版本的精简镜像。
WORKDIR:设置工作目录。在此目录下执行后续指令。
COPY:将当前目录的所有内容复制到容器的/app目录。
RUN:执行命令。在这里是安装Python依赖项。
EXPOSE:声明容器监听的端口。这里是5000端口。
CMD:指定容器启动时要运行的命令。在这里是运行Python应用程序app.py。

标签:容器,大白话,Python,sudo,镜像,Docker,通俗,docker
From: https://blog.csdn.net/hahaha_1112/article/details/140117773

相关文章

  • 聊聊gitlab ci如何构建以时间为版本号的docker镜像
    前言最近朋友他们部门有部分内部项目,打算用gitlabci来做项目持续集成部署,他们有个需求,构建docker镜像的时候,版本需要是以当前时间作为版本。其格式为yyyymmddhhmm一开始朋友翻阅官方文档,发现gitlabci有个变量CI_COMMIT_TIMESTAMP,可以生成时间戳,他默认生成的格式是ISO-8601。就......
  • docker基本介绍
    虚拟机的部署形式一个物理机可以部署多个app每个app独立运行在一个VM虚拟机里面依然部署很慢迁移和扩展可以使用VM的克隆每一个虚拟机都是一个完整的操作系统,虚拟机多的时候,操作系统本身资源也就被消耗过多企业使用的虚拟化工具为:vmwareesxi虚拟化工具个人学习使用:VMware......
  • docker 基础学习--尚硅谷教程
    1、新建、启动容器dockerrun[OPTIONS]IMAGE[COMMAND][ARG...] 2、列出当前所有正在运行的容器dockerps[OPTIONS] 3、退出容器4、重启、退出、删除容器  5、启动守护式容器      docker常见命令 ......
  • Docker详细安装教程
    1,卸载旧的版本2,需要的安装yuminstall-yyum-utils3,设置镜像的仓库https://blog.csdn.net/qq_43168442/article/details/116770163(访问这个博客网站进行配置)更新yum软件包索引yummakecachefast4,安装dockerdocker-ce社区ee企业版yumremovedocker-cedocker-......
  • centos7 docker 配置阿里云镜像加速
    1、安装docker1.1卸载原有dockeryumremovedockerdocker-clientdocker-client-latestdocker-commondocker-latestdocker-latest-logrotatedocker-logrotatedocker-engine1.2 部署docker依赖yuminstall-yyum-utils1.3配置阿里云镜像加速yum-config-manage......
  • 5. Docker Compose
    DockerCompose安装先安装DockerComposesudocurl-L"https://get.daocloud.io/docker/compose/releases/download/1.28.5/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose为docker-compose添加可执行权限sudochmod+x/usr/local/bin/docker-co......
  • 4. Docker实战
    Docker安装Mysql首先确认当前系统中,是否有mysql镜像文件,结果发现没有再使用dockersearch命令来搜索hub.docker.com上的mysql镜像文件 我们就使用starts最多的,官方的mysql镜像。使用dockerpullmysql命令,来下载mysql:latest,也就是mysql最新版的镜像 根据mysql镜像创建并运行一......
  • 3. Docker File
    DockerFileDockerFile是一个脚本程序。DockerFile这个脚本程序就是用来创建Docker镜像的。使用DockerFile的三个固定步骤☐编写DockerFile文件:手动编写一个DockerFile文件,语法必须符合DockerFile的语法规则☐dockerbuild:使用“dockerbuildDockerFile文件名”来创建出一个Do......
  • 2. Docker基础
    Docker深入演示例子为了加深大家对docker技术中的三大概念的理解,我再演示一个例子:拉取tomcat镜像,并部署web应用,并且运行。 dockersearchtomcat在仓库中搜索tomcat镜像,部分截图如下:dockerpulltomcat拉取tomcat镜像这里为什么tomcat镜像的大小有529MB?tomcat 不会这么大啊。......
  • 1. Docker快速起步
    Docker先安装Docker,再讲课没有Docker的日子里在以前的开发时代,开发人员把自己开发好的war交付给运维人员,运维人员为了把war部署到服务器上且保证能运行,就必须由运维人员在服务器上搭建好运行环境! 可这样带来的问题是,如果开发环境与部署环境不一致(比如版本),则会导致无法在服务器环......