• docker010快速上手使用


    docker安装

    安装docker,如果不想折腾homebrew或是apt这类包管理工具,推荐直接安装docker的desktop版本,安装好后在命令行或是通过gui均可使用,官方下载链接
    安装好后执行经典--version

    docker --version
    

    docker中的名词含义

    docker中的一个核心概念是image(镜像),常被比喻作一个集装箱。每个image有id、作者、创建时间、大小等。image又像是个git仓库或是mvn仓库,第一次使用时从mirros仓库中pull,操作更改后可以进行commit保存,需要同步到远端时进行push。

    每个镜像运行时,有个容器container的概念,和hadoop yarn的container概念类似。

    安装docker后,查看当前有什么image,可以执行

    docker images
    

    以我个人的机器为例,输出如下,可以看到有REPOSITORY,TAG,IMAGE ID等关键信息:

    REPOSITORY                                             TAG              IMAGE ID       CREATED         SIZE
    mnadeem/boot-otel-tempo-provider1                      0.0.1-SNAPSHOT   32914b1c7cbe   5 months ago    168MB
    mnadeem/boot-otel-tempo-api                            0.0.1-SNAPSHOT   86f67a32fc3d   5 months ago    148MB
    mnadeem/boot-otel-tempo-docker                         0.0.1-SNAPSHOT   539de8d31617   5 months ago    129MB
    mnadeem/boot-otel-tempo-docker                         latest           539de8d31617   5 months ago    129MB
    postgres                                               latest           cdbebe091601   5 months ago    374MB
    prom/prometheus                                        latest           a3d385fc29f9   6 months ago    201MB
    dpage/pgadmin4                                         latest           b19921dd09db   6 months ago    270MB
    mirrors.tencent.com/todacc/rec_index_service_compile   1.1.6            2462cdaa0331   7 months ago    8.53GB
    mysql                                                  8.0              c0cdc95609f1   13 months ago   556MB
    

    REPOSITORY: 仓库,类似git的仓库或是maven的groupId+artifactId,但也有image name的概念,相比于image id更human readable。

    在docker命令中,如docker run, 一般需要指定镜像,可以通过image id或是name。如果通过name指定,这个name需要是能具体指定某个版本的image的全名,格式是REPOSITORY:TAG,当然如果TAG是默认值latest的话,可以省略。

    例如以下使用命令,通过指定name的方式来运行某个镜像:

    docker run mirrors.tencent.com/todacc/rec_index_service_compile:1.1.6
    

    如果只指定name不是全名会报错,提示本地找不到镜像rec_index_service_compile

    docker run rec_index_service_compile
    

    也可以用image id指定镜像,如:

    docker run 2462cdaa0331
    

    REPOSITORY仓库名有特定的格式。

    以rec_index_service_compile为例,其全名是mirrors.tencent.com/todacc/rec_index_service_compile,mirrors.tencent.com是镜像仓库服务,todacc是命名空间或组的概念,rec_index_service_compile是具体的仓库名。REPOSITORY名也可以进行默认省略,像最后一行的mysql那样。

    TAG: 类似于git里的tag,版本的意思,使用仓库名指定image时,如果不是latest时需要指定版本。
    IMAGE ID: 镜像id,这个比较好理解。

    会用到的docker命令

    安装镜像

    docker pull mirrors.tencent.com/todacc/rec_index_service_compile:1.1.6  /bin/bash
    

    查看本地镜像

    docker images
    

    交互式运行

    docker run -it mirrors.tencent.com/todacc/rec_index_service_compile:1.1.6  /bin/bash
    

    查看某个镜像的详细信息

    docker inspect mirrors.tencent.com/todacc/rec_index_service_compile:1.1.6
    

    查看正在运行的容器

    docker ps
    

    网路连接断开后重新进入docker,先使用docker ps确定执行中的container id

    docker attach ${container id}
    

    保存本次更改,类似git commit

    docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
    
    • -m: 提交的描述信息
    • -a: 指定镜像作者
    • e218edb10161:容器 ID
    • runoob/ubuntu:v2: 指定要创建的目标镜像名

    更新发布到远端

    docker push mirrors.tencent.com/myspace/video_rec_annalgo:dev
    

    这一步可能会遇到denied: requested access to the resource is denied的错误

    首先检查是否已进行docker login,如果是发布到其他仓库(非默认),需要login 指定的服务,如我这里发布到腾讯的,执行

    docker login --username xxx --password xxx mirrors.tencent.com
    

    如果登录后依然出现这个问题,需要到镜像服务中检查下要发布到仓库命名空间,如这里的myspace是否有足够的权限。

  • 相关阅读:
    开发实践思考(一)
    记一次前端适配后台接口改造的开发小结
    百度地图AK申请
    Idea 不更新pom.xml中的jar包
    java junit @Test 变量共享问题 --springboot 中的Controller静态变量可以共享
    Java如何对HashMap按值进行排序--非String int 类型时
    Salesforce Integration 概览(七) Data Virtualization数据可视化
    Salesforce Integration 概览(六) UI Update Based on Data Changes(UI自动更新基于数据变更)
    Salesforce Integration 概览(五) Remote Call-In(远程操作 外部->salesforce)
    Salesforce Integration 概览(四) Batch Data Synchronization(批量数据的同步)
  • 原文地址:https://www.cnblogs.com/lshao/p/16387132.html
Copyright © 2020-2023  润新知