Docker快速入门

Docker

  • Docker 是一个应用打包、分发、部署的工具。需要理解三个重要概念,Dockerfile,Image/镜像,Container/容器。Dockerfile用来创建Image的自动化脚本。Image可以理解为Container的模板或者类。Container是Image的实例,是运行在主机上的应用环境。
  • 在应用的根目录下创建一个Dockerfile文件:
    FROM python:3.8-slim-buster #指定一个基础镜像,可查阅dockerhub
    WORKDIR /app #指定之后所有Docker命令的工作路径
    COPY . . #将当前目录下所有的程序拷贝到Docker镜像中
    RUN pip install -r requirement.txt #允许在创建镜像时运行所有的shell命令
    CMD ["python3", "app.py"] #指定当Docker容器运行起来后要执行的命令
    
  • 创建镜像:
    docker build -t my-finace . #-t:tag/标签 ;.:在当前目录下寻找dockerfile
    
  • 创建容器:
    docker run -p 80:5000 -d my-finace #-p:将5000容器端口映射到80主机端口;-d:让容器在后台运行
    
  • 命令集
    • 列举所有容器:docker ps
    • 启动容器:docker start <容器ID>
    • 停止容器:docker stop <容器ID>
    • 重启容器:docker restart <容器ID>
    • 删除容器:docker rm <容器ID>
    • 启动一个远程Shell:docker exec -it <容器ID> /bin/bash
  • 数据持久化
    • 创建数据卷:docker volume create my-finance-data
    • 数据卷挂载:docker run -dp 80:5000 -v my-finance-data:/etc/finance my-finance
  • 多容器协同
    • 创建docker-compose.yml文件:
      version: "3"
      service:
      	web:
      		build: .
      		ports:
      			-"80:5000"
      	db:
      		image: "mysql"
      		enviroment:
      			MYSQL_DATABASE: finance-db
      			MYSQL_ROOT_PASSWORD: secret
      		volumes:
      			- my-finance-data:/var/lib/mysql
      	volumes:
      		my-finance-data:
      
    • 运行所有容器:docker compose up -d
    • 停止并删除所有容器:docker compose down (--volumes)
  • Reference

相关推荐

  1. Docker 快速入门

    2023-12-08 09:38:06       11 阅读
  2. 10Docker Compose快速入门

    2023-12-08 09:38:06       35 阅读
  3. docker快速入门教程

    2023-12-08 09:38:06       24 阅读
  4. Docker 入门指南:快速上手 Docker

    2023-12-08 09:38:06       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 09:38:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 09:38:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 09:38:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 09:38:06       20 阅读

热门阅读

  1. 在目标检测的图框标注中注意一下几点

    2023-12-08 09:38:06       34 阅读
  2. 内参标定原理及方法

    2023-12-08 09:38:06       42 阅读
  3. K8S集群优化的可执行优化

    2023-12-08 09:38:06       29 阅读
  4. 自学黑客(网络安全)普通人学我看还是算了吧

    2023-12-08 09:38:06       39 阅读
  5. WordPress引入css和js的方法

    2023-12-08 09:38:06       36 阅读
  6. 【Android】HttpURLConnection、OkHttp

    2023-12-08 09:38:06       33 阅读