zoukankan      html  css  js  c++  java
  • Docker 系列之 基础入门

    安装 Docker

    • Windows 10 专业版以上版本

    Docker for Windows Installer

    在安装前,需要确保目标机器已经开启了硬件虚拟化和 HyperV ;在安装的过程中建议不要进行其它操作,它需要自动重启。

    • Ubuntu

    Docker for Ubuntu

    • MacOS

    Docker for MacOS

    镜像加速器:registry mirror https://registry.docker-cn.com

    安装完成后可打开 bash 窗口检查安装是否正常。

    # 查看当前安装版本
    docker -v
    
    # 查看当前详细信息
    docker -info
    
    # 登录 Docker
    docker login
    

    安装 Portainer

    portainer: 可视化的管理界面,可选操作;(VSCode 里面的 Docker 插件也是可以进行相关操作)

    docker volume create portainer_data
    
    docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
    

    执行成功后浏览 127.0.0.1:9000 即可。

    架构图

    三大关键点

    image

    Docker 镜像是一个只读的环境模板,里面只存放了我们需要运行程序的基础环境配置。

    • 常用命令
    # 获取镜像
    docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
    
    # 查看当前已经下载下来的所有镜像
    docker images
    docker image ls
    
    # 显示所有悬挂镜像(仓库名、标签均为 <none> 的镜像)
    docker image ls -f dangling=true
    
    # 以特定格式显示
    docker image ls -q
    docker image ls --format "{{.ID}}: {{.Repository}}"
    docker image ls --format "table {{.ID}}	{{.Repository}}	{{.Tag}}"
    
    # 查看镜像体积
    docker system df
    
    # 删除指定镜像
    docker image rm [选项] <镜像1> [<镜像2> ...]
    docker rmi container_id
    

    注:删除镜像前,请先删除对应的容器。

    • 使用 Dockerfile 进行自动构建
      • FROM:指定基础镜像
      • RUN:执行命令
      • build:docker build [选项] <上下文路径/URL/->
      • COPY:复制文件
      • ADD:更高级的复制文件
      • ENTERPOINT:入口点
      • ENV:设置环境变量
      • ARG:构建参数
      • VOLUME:定义匿名卷
      • EXPOSE:暴露端口
      • WORKDIR:指定工作目录
      • USER:指定当前用户
      • HEALTHCHECK:健康检查
      • ONBUILD:未他人做嫁衣裳

    示例脚本如下所示:

    docker build -t friendlyname .# 使用此目录的 Dockerfile 创建镜像
    docker run -p 4000:80 friendlyname  # 运行端口 4000 到 90 的“友好名称”映射
    docker run -d -p 4000:80 friendlyname         # 内容相同,但在分离模式下
    docker ps                                 # 查看所有正在运行的容器的列表
    docker stop <hash>                     # 平稳地停止指定的容器
    docker ps -a           # 查看所有容器的列表,甚至包含未运行的容器
    docker kill <hash>                   # 强制关闭指定的容器
    docker rm <hash>              # 从此机器中删除指定的容器
    docker rm $(docker ps -a -q)           # 从此机器中删除所有容器
    docker images -a                               # 显示此机器上的所有镜像
    docker rmi <imagename>            # 从此机器中删除指定的镜像
    docker rmi $(docker images -q)             # 从此机器中删除所有镜像
    docker login             # 使用您的 Docker 凭证登录此 CLI 会话
    docker tag <image> username/repository:tag  # 标记 <image> 以上传到镜像库
    docker push username/repository:tag            # 将已标记的镜像上传到镜像库
    docker run username/repository:tag                   # 运行镜像库中的镜像
    

    container

    容器是从镜像的创建的运行实例;简单的说,它是在镜像上面又创建了一层可读写层。容器之间相互隔离。

    • 常用命令
    # 查看当前正在运行的容器
    docker container ls
    docker ps
    
    # 查看当前所有容器实例
    docker container ls -a
    docker ps -a
    
    # 新建(若不存在)并启动一个容器实例
    docker run image
    
    # 新建(若不存在)并后台启动一个容器实例
    docker run -d image
    
    # 新建(若不存在)并以交互模式启动一个容器实例
    docker run -it image
    
    # 启动已终止的容器
    docker start conatiner_id
    docker container start conatiner_id
    
    #停止指定容器
    docker stop conatiner_id
    docker container stop conatiner_id
    
    # 停止所有容器(在 powershell 中操作)
    docker stop $(docker ps -aq)
    
    # 删除指定容器
    docker rm conatiner_id
    
    # 查看指定容器的运行日志
    docker logs conatiner_id
    

    repository

    仓库是集中存放镜像的地方,仓库分为公开仓库和私有仓库两种,最大的公开仓库是Docker Hub,提供了数量庞大的镜像供用户下载,国内的公开仓库包括Docker Pool等,可以提供大陆用户更稳定、更快的访问。

    • 常用命令
    # 查找镜像
    docker search keywords
    
    # 拉取镜像
    docker pull repo_name
    
    docker push username/repo_name
    

    相关参考

  • 相关阅读:
    在Vue-cli3.x中引入element-ui的新方式
    通过JS屏蔽鼠标右键
    java异常有效实践
    设计之禅——迭代器模式
    设计之禅——状态模式
    设计之禅——外观模式
    设计之禅——适配器模式
    设计之禅——我只要结果(命令模式)
    设计之禅——装饰者模式详解(与代理模式的区别以及与其他模式的组合)
    设计之禅——生成器模式
  • 原文地址:https://www.cnblogs.com/hippieZhou/p/10740996.html
Copyright © 2011-2022 走看看