docker入门学习一

背景

因为项目中有用到docker,趁着周末时间,快速看下docker的相关基础知识,并记录看的过程中遇到的问题


windows10 docker环境搭建

  • Docker Desktop Windows 10 下载地址hub.docker.com/editions/co…
  • 第一次安装成功后,打开有可能出现 wsl 2版本太低。在cmd直接运行指令:
    wsl --update # 一键更新,更新失败需要手动下载
复制代码

或者直接下载最新版本aka.ms/wsl2kernel/

  • 在国内下载国外资源,可以使用国内加速器服务。windows下docker->Docker Engine(lunix 下/etc/docker/daemon.json)中直接配置为
{
  "registry-mirrors": [
    "https://reg-mirror.qiniu.com/" # 加速器
  ],
  "insecure-registries": [
    "127.0.0.3:8082/" # 同步时如果存在http与https,需要设置。一般指的时私库的服务地址
  ]
}
复制代码

配置参数,需要重启下docker服务。更多参数查阅过官方推荐配置docs.docker.com/engine/refe…

完成配置后,需要查看对应配置,输入指令:

docker info
复制代码

docker 基础概念

  • docker:操作系统层面的虚拟化技术。就是程序运行的环境。方便创建和使用容器.它包含三个基本概念:镜像、容量、仓库
  • 镜像image:是一个特殊的文件系统,提供容器运行时所需的程序、库、资源、配置等
  • 容量Container:容器是镜像运行时的实体。相当于面相对象编程中的类与实例
  • 仓库Repository:存放镜像的地方
  • docker registry:集中存储、分发镜像的服务。一个docker registry 可以包含多个仓库,每个仓库可以包含多个标签,每个标签对应一个镜像

docker 常用的基础命令

docker search hello-world  # 搜索hello-world镜像
docker pull hello-world # 获取hello-world镜像
docker run hello-world   # 运行一个docker镜像,产生一个容器实例(也可以通过镜像id前三位运行)
docker image ls  # 查看本地所有镜像
docker images # 查看docker镜像
docker image rm hello-world # 删除hello-world镜像
docker ps # 列出正在运行的容器(如果创建容器中没有进程正在运行,容器就会立即停止)
docker ps -a # 列出所有运行过的容器记录,q列出编号
docker save hello-world > d:\hello.tar.gz  # 导出docker镜像至本地
docker load < d:\hello.tar.gz  #导入本地镜像到docker镜像库
docker container ls -all # 列出所有容器包括终止的
docker rm e56933f77a0c  # 删除容器编号
docker rmi hello-world  # 删除hello-world镜像
复制代码

通过Dockerfile 去定制image

  • Dockerfile 是一个文本文件,内部包含每一条的指令,每条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建
  • FROM 一般是指定基础镜像
  • RUN 命令是image文件构建阶段执行,执行结果都会打包进入image文件(可以存在多个RUN指令)
  • CMD 命令是容器启动后执行,默认是只有一个CMD命令
  • && 可以串联各个命令,避免使用过多RUN命令,创建无用层
  • 一般使用docker build进行构建
  • 可以使用.dockerignore剔除不需要作为上下文传递给Docker引擎
 docker build  -t nginx:v1 . # 其中.表示是当前目录
复制代码

案例参考www.ruanyifeng.com/blog/2018/0… 定制镜像。 有点小遗憾的是,家里网速太差了,运行到安装的最后一步,还没成功完全下载好。

image.png

猜你喜欢

转载自juejin.im/post/7040416719424192520
今日推荐