首页 > 其他分享 >docker 基本使用

docker 基本使用

时间:2023-09-15 22:35:58浏览次数:41  
标签:基本 容器 创建 命令 使用 镜像 docker dockerfile

docker 基本使用

我自己的总结

1.创建容器先创建镜像,
2.创建镜像先创建dockerfile文件
3.以下是dockerfile文件的一部分内容
4.容器镜像的创建只能 从已有的镜像进行创建(必须有一个官方的镜像 然后根据官方的模板创建你自己的)
5.也就是说 dockerfile中的from关键字必须是官方的或者其他开源的地址
6.根据你创建模板进行命令,此命令必须在dockerfile文件所在的文件夹中,python代码也是,requirements.txt也是,
7.镜像创建好后就可以拉取镜像 创建docker容器了 
8. 端口如何理解(两部分 容器端口,服务器端口) 他们是映射关系,容器5000<-->服务器8088 
9.也就是说访问服务器的8088端口就是访问容器的5000端口
  • 首先你需要根据官网已有的镜像设置一个自己的镜像 使用dockerfile 文件进行编写
  •   # 使用官方 Python 3.6.8 镜像作为基础镜像
      FROM python:3.6.8
      
      # 设置工作目录
      WORKDIR /app
      
      # 将当前目录下的所有内容复制到工作目录中
      COPY . /app
      
      # 安装 Python 包
      RUN pip install --no-cache-dir -r requirements.txt
      
      # 定义容器启动时要执行的命令
      CMD ["python", "app.py"]
    

docker工作原理

  • 基本解释
    • 远程镜像仓库 本地镜像 本地容器 docker
    • 镜像可以理解为容器的模板,也可以理解为电脑安装操作系统的光盘
    • 本地容器是真正运行的实例,容器创建后即可跟Linux系统一样使用
    • docker软件是以上三个部分的基座(远程仓库,本地镜像,本地容器)

docker镜像

  • 镜像:容器的模板,等同于安装电脑操作系统的光盘,
  • 镜像是只读的,不能对其进行修改,
  • docker镜像 名称用 ":"隔开 例如 mysql:5.7
    • mysql 是镜像名 5.7 是tag版本
  • 产看本地镜像命令: docker images
  • 搜索镜像仓库 docker searh <名称关键字>
  • 下载镜像仓库 docker pull <镜像名: tag版本>
  • 上传镜像仓库 docker push <镜像名: tag版本>
  • 删除镜像仓库 docker rmi <镜像名: tag版本>
  • 打包本地镜像文件 docker save -o <输出文件路径>
  • 导入本地镜像文件 docker load -i <加载文件路径>

docker容器

  • docker 是真正的运行实例,容器可以隔离网络,文件,进程等
  • 一个容器是一个沙河隔离环境
  • 相对于虚拟机技术,启动快,更轻量,
  • 但是容器是共用宿主机的内存,cpu物理资源,多容器可能存在互相抢占资源的情况
  • 修改容器文件不会啊影响到镜像, 容器是基于镜像创建的,容器内部的文件是完全独立的
  • 如果需要将修改后的容器放到别的机器中运行一般的做法是:
    • 先将容器打包成镜像
    • 镜像复制到新的服务器镜像中
    • 从新的服务的镜像中启动容器

容器创建方式

  • 通过命令直接创建
    • 需要完整的镜像
  • 通过dockerfile创建
    • 镜像可以不完整
      -容器创建的命令
    • 基础参数, docker dit\ --name <容器名称>
    • 挂在宿主机目录, -v /home/workspace/:/home/workspace\
    • 网络设置 -p 8001:8080
    • 环境变量设置, TZ = "Asia/Shanghai"
    • 基础镜像, ubuntu: 22.04
    • 容器每次启动命令, bin/bash

容器创建命令详解

  • 查看本地镜像, docker ps
  • 查看所有容器,(包括未运行的)docker pa -a
  • 启动容器: docker start
  • 停止容器: docker stop
  • 删除容器: docker rm
  • 进入容器内部 docker exec -it <容器ID> /bin/bash
  • 进入容器内部 docker exec -it <容器ID> /bin/bash
  • 容器打包成镜像 docker commit -a "作者信息" -m "log信息" <容器ID> <目标镜像名称:tag版本>
  • 拷贝文件到容器中 docker cp <文件目录> <容器ID>:<目标目录>
  • 拷贝容器文件到宿主机中: docker cp <容器ID> <文件目录> <宿主机目标目录>
  • 更新容器设置: docker update <容器ID> <相关设置>

dockerfile关键字

  • 在 Dockerfile 中,有一些常用的关键字(指令)用于定义镜像的构建规则和行为。下面是一些常见的 Dockerfile 关键字:
    FROM:指定基础镜像。
    MAINTAINER(已弃用)/ LABEL:定义镜像的作者或维护者信息。
    RUN:在容器中执行命令。
    CMD:设置容器启动时要执行的默认命令,可以有多个 CMD,但只有最后一个生效。
    ENTRYPOINT:设置容器启动时要执行的默认命令,与 CMD 的区别在于 ENTRYPOINT 不会被 docker run 命令后面的参数覆盖。
    ARG:定义构建过程中的变量。
    ENV:设置环境变量。
    EXPOSE:声明容器运行时要监听的端口。
    VOLUME:创建一个可以从容器内持久化存储的挂载点。
    WORKDIR:设置工作目录。
    ADD / COPY:将文件从主机复制到容器中。
    ONBUILD:定义当当前镜像被作为其他镜像的基础镜像时要运行的命令。
    USER:指定运行容器时的用户名或 UID。
    HEALTHCHECK:指定容器健康检查的命令和参数。
    SHELL:指定用于执行 RUN、CMD 和 ENTRYPOINT 指令的默认 Shell。
    以上是一些常见的 Dockerfile 关键字,您可以根据实际需求和具体的镜像构建过程选择合适的关键字来编写 Dockerfile 文件。

标签:基本,容器,创建,命令,使用,镜像,docker,dockerfile
From: https://www.cnblogs.com/jwdboke/p/17706045.html

相关文章

  • MySQL——基本使用
    基本操作SQL语句分类DDL:数据定义语句【create表,库...】DML:数据操作语句【增删改】DQL:数据查询语句【select】DCL:数据控制语句【管理数据库:比如用户权限grant、revoke】列类型(常用)数值型:TINYINT[UNSIGNED]——1byte,默认有符号INT——4byteBIGINT——8byteFLOAT——4byte......
  • 如何使用透明的div实现页面背景模糊效果
    要在页面背景上实现模糊效果,并使内容区域(<div>)保持半透明,你可以使用CSS的backdrop-filter属性。这个属性可以用于设置页面背景的滤镜效果,而不影响内部内容的模糊。下面是一个示例的代码片段,展示如何实现这个效果:<!DOCTYPEhtml><html><head><title>背景模糊效果</title>......
  • 使用原生的js实现分享功能,代码非常精简
     分享一个原生的js实现移动端分享功能,希望大家喜欢。兼容性: 实现代码:functionshare(){if(!navigator.share){alert("您当前浏览器不支持分享!");}else{navigator.share({title:'{$title}',text:'{$introduce}',url:window.location.href});}}......
  • 如何使用树莓派搭建一个流媒体服务器 All In One
    如何使用树莓派搭建一个流媒体服务器AllInOneRaspberryPiStreamMeidiaServerRaspberryPiMeidiaPlayerOSEmbyMediaServerhttps://emby.media/https://github.com/MediaBrowser/Embyhttps://apps.apple.com/us/app/emby/id992180193?platform=macEmbyThea......
  • 【心得】TP6 使用redis基础
    在业务场景中,我们会面对一些对于不经常更改的数据,但是会频繁访问,会对数据库造成不必要的负载,以及对于一些高并发的处理我们都需要用到缓存的技术,目前主流使用的缓存有MemChachedRedis等,当然我们也有TP框架自带的缓存。但是今天我给大家带来的是redis的基础使用。第一步安装red......
  • linux 内存盘的使用方式与验证
    linux内存盘的使用方式与验证背景某些情况下,硬盘的写入是一个很大的瓶颈使用内存文件系统的方式应该能够极大的提高IO的速度.内存盘的优点是比较快,缺点就是数据不是持久化的.其实还是有很多可以持续优化的方式与方法的.可以最大化的磁盘的IO速度等.内存盘......
  • OpenCV基本数据类型
    命名规则类{2,3,4,6}{b,s,w,i,f,d}{2,3,4,6}代表向量的长度。{b,s,w,i,f,d}表示向量内数据类型point类可以转化到固定向量类1Point2fpoint(1.0,2.0);2cout<<"first:"<<point.x<<"second:"<<point.y<<endl;size类不可以转化到固......
  • 七天学会C语言-第一天(C语言基本语句)
    一、固定格式这个是C程序的基本框架,需要记住!!!#include<stdio.h>intmain(){return0;}二、printf语句简单输出一句C程序:#include<stdio.h>intmain(){printf("大家好,");printf("我是");printf("沐尘而生!");return0;}运行结果:例2:#include......
  • 力扣-使用最小花费爬楼梯
    1.问题数组的每个索引作为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为0或1的元素......
  • Docker 安装与配置
    安装方法:yum配置仓库安装rpm包安装使用docker官方提供的自动化脚本这里以yum配置仓库安装为例。确认操作系统版本确认操作系统是否是CentOS7及以上版本。cat/etc/os-release卸载旧版本sudoyumremovedocker\docker-client\......