docker详细笔记
创始人
2024-11-11 08:34:15
0

Docker详细笔记

目录

  1. Docker简介
    • 什么是Docker
    • Docker的优势
  2. Docker基础概念
    • 镜像(Image)
    • 容器(Container)
    • 仓库(Repository)
  3. Docker环境安装
    • 在Windows上安装Docker
    • 在macOS上安装Docker
    • 在Linux上安装Docker
  4. Docker基本命令
    • 镜像命令
    • 容器命令
  5. Docker进阶操作
    • Dockerfile详解
    • 数据卷(Volumes)
    • 网络配置
  6. Docker实践应用
    • 使用Docker构建Web应用
    • 使用Docker进行持续集成/持续部署(CI/CD)
  7. 总结

Docker简介

什么是Docker

Docker是一个开源的容器化平台,旨在使应用程序在任何环境中都可以简单和一致地运行。通过使用操作系统层的虚拟化,Docker可以将软件包及其依赖项封装成一个标准化的单元(即容器)。

Docker的优势

  • 轻量级: 与传统的虚拟机相比,Docker容器更轻量级,可以在几秒钟内启动或停止。
  • 一致性: 通过Docker镜像,可以确保在本地开发的应用程序与在生产环境中运行的应用程序一致。
  • 高效资源使用: Docker可以共享主机的操作系统内核,从而有效减少系统资源消耗。

Docker基础概念

镜像(Image)

镜像是一个只读的模板,包含了创建Docker容器的指令。它类似于虚拟机中的快照。

容器(Container)

容器是镜像的一个运行实例。它不仅包含镜像中的全部内容,且添加了额外的应用程序状态。如果说镜像是建筑图纸,容器就是建筑成品。

仓库(Repository)

仓库是一组相关的镜像。通常,一个仓库包含多个版本的镜像。最常用的仓库是Docker Hub。

Docker环境安装

在Windows上安装Docker

  1. 下载并访问Docker Desktop for Windows
  2. 安装并运行Docker Desktop
  3. 通过命令行验证
    docker --version 

在macOS上安装Docker

  1. 下载并访问Docker Desktop for Mac
  2. 安装并运行Docker Desktop
  3. 通过命令行验证
    docker --version 

在Linux上安装Docker

以Ubuntu为例:

  1. 更新APT包索引
    sudo apt-get update 
  2. 安装依赖包
    sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release 
  3. 添加Docker官方GPG密钥
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 
  4. 设置稳定版仓库
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 
  5. 安装Docker引擎
    sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io 
  6. 通过命令行验证
    docker --version 

Docker基本命令

镜像命令

  1. 拉取镜像
    docker pull  
  2. 列出本地镜像
    docker images 
  3. 删除镜像
    docker rmi  

容器命令

  1. 创建并运行容器
    docker run -it  
  2. 列出运行中的容器
    docker ps 
  3. 停止容器
    docker stop  
  4. 删除容器
    docker rm  

Docker进阶操作

Dockerfile详解

Dockerfile是一个用于定义Docker镜像的构建步骤的文本文件。

示例Dockerfile:

# 基础镜像 FROM ubuntu:20.04  # 维护者信息 LABEL maintainer="example@example.com"  # 安装依赖 RUN apt-get update && apt-get install -y nginx  # 复制文件到镜像 COPY . /var/www/html  # 暴露端口 EXPOSE 80  # 容器启动命令 CMD ["nginx", "-g", "daemon off;"] 

数据卷(Volumes)

数据卷用于持久化数据,即使容器删除,数据仍然保留。

创建数据卷并挂载到容器:

docker run -it -v /host/path:/container/path  

网络配置

Docker允许通过桥接模式、自定义网络等方式配置网络。

创建自定义网络:

docker network create  

将容器加入自定义网络:

docker run -it --network   

Docker实践应用

使用Docker构建Web应用

创建一个简单的Node.js应用并使用Docker进行容器化。

  1. 创建项目文件结构:
    myapp/ ├── Dockerfile ├── package.json └── server.js 
  2. 编写 package.json
    {   "name": "myapp",   "version": "1.0.0",   "main": "server.js",   "dependencies": {     "express": "^4.17.1"   },   "scripts": {     "start": "node server.js"   } } 
  3. 编写 server.js:
    const express = require('express'); const app = express();  app.get('/', (req, res) => {   res.send('Hello, Docker!'); });  const PORT = process.env.PORT || 3000; app.listen(PORT, () => {   console.log(`Server is running on port ${PORT}`); }); 
  4. 编写 Dockerfile:
    FROM node:14  WORKDIR /usr/src/app  COPY package.json .  RUN npm install  COPY . .  EXPOSE 3000  CMD ["npm", "start"] 
  5. 构建镜像:
    docker build -t myapp . 
  6. 运行容器:
    docker run -p 3000:3000 myapp 

使用Docker进行持续集成/持续部署(CI/CD)

可以使用Docker结合Jenkins、GitLab CI等工具实现CI/CD流水线。

例如,在GitLab CI中使用Docker构建和部署:

image: docker:latest  services:   - docker:dind  stages:   - build   - deploy  build:   stage: build   script:     - docker build -t myapp .  deploy:   stage: deploy   script:     - docker run -d -p 3000:3000 myapp 

总结

通过本文的学习,我们详细介绍了Docker的基础知识、环境安装、基本命令、以及进阶操作。希望这些内容能帮助你更好地理解和使用Docker,提高开发和部署效率。Docker作为一个强大的工具,在现代软件开发中扮演着越来越重要的角色,掌握它将极大提升你的技术能力。

Docker官方文档:Docker Documentation

相关内容

热门资讯

盘点一款!卡农大厅辅助,菜鸟黑... 盘点一款!卡农大厅辅助,菜鸟黑桃a3作弊,法门教程(有挂攻略)1、下载好卡农大厅辅助正确养号方法之后...
技术分享!广东闲来辅助神器免费... 技术分享!广东闲来辅助神器免费版,捉住捣蛋鸡作弊,举措教程(有挂详情)1、超多福利:超高返利,海量正...
必知教程!仟众部落辅助,冰球突... 必知教程!仟众部落辅助,冰球突破辅助软件,方案教程(果真有挂)1、完成仟众部落辅助辅助器v3.3的残...
最新研发!吉祥填大坑有插件吗,... 最新研发!吉祥填大坑有插件吗,四川途游破解安装包,大纲教程(有挂细节)1、四川途游破解安装包脚本辅助...
一分钟揭秘!吉祥填大坑辅助器攻... 一分钟揭秘!吉祥填大坑辅助器攻略,指尖四川辅助破解版,练习教程(有挂工具)1、吉祥填大坑辅助器攻略有...
总算了解!凑一桌小程序辅助器,... 总算了解!凑一桌小程序辅助器,开心游戏快跑辅助,办法教程(有挂助手)1、任何凑一桌小程序辅助器透视是...
一起来讨论!开心庄园脚本辅助器... 一起来讨论!开心庄园脚本辅助器,全来潜山跑风辅助器,妙计教程(有挂技巧)1、玩家可以在全来潜山跑风辅...
每日必备!朋友局app辅助器下... 每日必备!朋友局app辅助器下载,爱玩娱乐暗堡辅助,机巧教程(真的有挂)1)朋友局app辅助器下载辅...
终于清楚!蜀山四川小程序破解版... 终于清楚!蜀山四川小程序破解版下载,拱趴大菠萝技巧,步骤教程(竟然有挂)1、不需要AI权限,帮助你快...
大神推荐!潮友会辅助器,多乐辅... 大神推荐!潮友会辅助器,多乐辅助器免费版,手册教程(有挂实锤)1)潮友会辅助器有没有挂:进一步探索潮...