Docker快速入门

2023-12-13 06:09:57

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

文章来源:https://blog.csdn.net/LogosTR_/article/details/134864559
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。