首页 > 其他分享 >Docker 入门

Docker 入门

时间:2023-07-21 16:44:09浏览次数:40  
标签:容器 入门 应用程序 镜像 Docker Dockerfile docker

Docker 入门教程

0x01 概述

  • 用于构建、运行、传送应用程序的平台
    • 将操作系统、运行时环境、第三方软件库和依赖包、应用程序、环境变量、配置文件、启动命令一起打包
  • 特点
    • 应用隔离
    • 环境配置
    • 安装部署
    • 持续集成
    • 持续发布
    • DevOps

0x02 基本原理和概念

  • 镜像(images):一个只读模板,可以用来创建容器
  • 容器(containers):一个运行实例,提供一个独立的可移植环境,可以在其中运行应用程序
  • 仓库(registry):用来存储镜像的地方,最常用的仓库是 DockerHub
  • Docker 的体系结构采用 C/S 模式
    • 客户端(Client):docker rundocker builddocker pull
      • Docker Client 负责向 Docker daemon 发送请求并接收返回的结果
    • 服务端(Docker Host):Docker daemon、images、containers
      • Docker daemon:服务端的守护进程,负责管理 Docker 的各种资源
    • 仓库(Registry):images、Extensions、Plugins
  • Docker Client 和 Docker Daemon 之间采用 Socket 或 RESTful API 进行通信

0x03 安装

Linux 中使用命令 sudo apt install docker.io 方法即可安装

  • 官网下载 Docker
  • 启动 Docker 即可使用

0x04 容器化和 Dockerfile

(1)容器化

  • 容器化(Containerzation):将应用程序打包成容器,之后在容器中运行应用程序的过程

  • 容器化过程

    1. 创建一个 Dockerfile

      告诉 Docker 构建应用程序镜像所需的步骤和配置

    2. 使用 Dockerfile 构建镜像

    3. 使用镜像创建和运行容器

(2)Dockerfile

  • Dockerfile 是一个文本文件,包含 Docker 如何构建镜像的指令

    • 该镜像包含应用程序执行的所有命令,一般包括以下内容
      • 精简版的操作系统
      • 应用程序运行时的环境
      • 应用程序
      • 第三方依赖库或包
      • 应用程序的配置文件
      • 环境变量
      • ……
  • 一般在项目的根目录下创建名为 Dockerfile 的文件,在其中写入构建镜像的指令

  • 举例

    • 新建目录 HelloDocker,在其中新建 index.j s 文件,并写入以下内容

      console.log("output");
      
    • 在终端中进入该目录,使用命令 node index.js 运行

    • 创建名为 Dockerfile 的文件

      FROM node:18-alpine
      COPY index.js /index.js
      CMD [ "node", "/index.js"]
      
      • 首先指定一个基础镜像,用于配置运行环境
        • 镜像是按层次结构来构建的,每一层都基于上一层
        • 18 表示 Node.js 的版本,alpine 表示构建镜像的操作系统
      • 复制应用程序到镜像中
        • 命令模板:COPY source dest,其中,source 是相对于 Dockerfile 的源路径,dest 是相对于 Dockerfile 的目标路径
      • 运行应用程序
        • 命令模板:CMD ["executable", "parameter", ...],其中,第一个参数 executable 表示可执行程序的名字,第二个参数 parameter 以及之后的参数表示可执行程序接收到的参数
    • 使用命令 docker build -t hello-docker . 构建镜像

      • 可以使用命令 docker imagesdocker image ls 查看所有镜像
    • 使用命令 docker run hello-docker 运行镜像

    • 可以使用 docker pull 相关命令下载镜像

0x05 Docker Desktop

  • Docker Desktop 封装了容器日常使用和管理的各种常用功能
  • 逻辑卷(Volumes)可以把容器中的目录或指定路径映射到宿主机的某一个目录或位置上,从而将数据保存到宿主机的磁盘上,实现数据的持久化

0x06 Docker Compose

  • 用于定义和运行多容器 Docker 应用程序的工具

  • 使用 YAML 文件来配置应用程序的服务

    • docker-compose.yml

      redis:
      	image: redis
      db:
      	image: mysql
      frontend:
      	image: vue-app
      	ports:
      		- 3000:3000
      	links:
      		- redis
      backend:
      	image: springbot-app
      	......
      
  • 使用一条命令即可创建并启动所有服务 docker compose up

-End-

标签:容器,入门,应用程序,镜像,Docker,Dockerfile,docker
From: https://www.cnblogs.com/SRIGT/p/17571852.html

相关文章

  • linux查看docker的ip
    Linux查看Docker的IP作为一名经验丰富的开发者,我很乐意教会刚入行的小白如何在Linux上查看Docker的IP。在本篇文章中,我将向你展示整个流程,并提供每一步需要做的事情和相应的代码。步骤概览以下是查看Docker的IP的整个流程的步骤概览:步骤描述1列出正在运行的Docker容......
  • linux 获取 docker run 命令
    Linux获取DockerRun命令在使用Docker时,我们经常需要使用dockerrun命令来创建和运行容器。这个命令非常重要,因为它允许我们指定所需的镜像、容器的名称、端口映射等等。在本文中,我们将介绍如何在Linux系统中获取dockerrun命令,并提供示例代码以帮助您更好地理解。Linux中获取Doc......
  • linux 查看docker 容器内存
    查看Docker容器内存的流程为了查看Docker容器内存使用情况,我们可以按照以下步骤进行操作。下面是整个流程的简要概括:查看正在运行的Docker容器列表;选择你要查看的容器;进入容器的命令行界面;在容器内部使用特定的命令来查看内存使用情况。下面我们将详细介绍每一步所需......
  • docker配置文件输出helloworld
    1.在root下创建dockerfilesudo-itouchDockerfilevimDockerfile2.编写helloworld.gopakagemainimport"fmt"funcmain(){fmt.Println("Hello,World!")} 3.配置DockerfileFROMubuntu:22.04ASv1ENVMYNAME="WANGYIDI"WOR......
  • docker配置
    在ubuntu22.04.2版本配置 更新系统软件包:sudoaptupdate安装所需的依赖包,以允许APT使用HTTPS:sudoaptinstallapt-transport-httpsca-certificatescurlsoftware-properties-common添加Docker官方的GPG密钥:curl-fsSLhttps://download.docker.com/linux/ubun......
  • window-docker+rengine搭建
    Docker安装+rengine部署开始window环境部署之旅安装windows子系统开启window虚拟化1、从搜索中找到控制面板,而后在控制面板中找到程序与功能2、选择启用与关闭,找到hyper-v,选中,再确认后等待一会,会提示是否重启,选择重启。3、重新开机后Win+R打开运行->输入cmd进入到命令提......
  • docker下安装和使用jenkins
    docker-jenkins拉取项目dockerpulljenkins/jenkins:lts启动项目mkdir-p/usr/local/docker/jenkins_homechmod777/usr/local/docker/jenkins_homedockerrun-d-p10240:8080-p10241:50000-v/usr/local/docker/jenkins_home:/var/jenkins_home-v/etc/localti......
  • c++入门以及简单顺序结构-习题
    1.c++入门以及简单顺序结构-习题1.计算(a+b)*c的值inta,b,c;cin>>a>>b>>c;cout<<(a+b)*c;2.带余除法inta,b;cin>>a>>b;cout<<a/b<<""<<a%b;//c++中取余结果正负只与%前面的正负有关系 cout<<5%2<<endl;//输出1 c......
  • 查看 docker 服务
    查看Docker服务Docker是一个开源的容器化平台,可以帮助开发者快速构建、部署和运行应用程序。在使用Docker之前,我们需要先了解如何查看Docker服务的状态,确保它已正确安装并正在运行。1.检查Docker是否已安装首先,我们需要检查Docker是否已经安装在我们的机器上。在Li......
  • Python爬虫超详细讲解(零基础入门,老年人都看的懂)
    本文已收录至Github,推荐阅读......