分类: docker

docker
  • 思源笔记 搭建

    docker run -d \
      -v workspace_dir_host:workspace_dir_container \
      -p 6806:6806 \
      -e PUID=1001 -e PGID=1002 \
      b3log/siyuan \
      --workspace=workspace_dir_container \
      --accessAuthCode=xxx
    version: "3.9"
    services:
      main:
        image: b3log/siyuan
        command: ['--workspace=/siyuan/workspace/', '--accessAuthCode=${AuthCode}']
        ports:
          - 6806:6806
        volumes:
          - /siyuan/workspace:/siyuan/workspace
        restart: unless-stopped
        environment:
          # A list of time zone identifiers can be found at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
          - TZ=${YOUR_TIME_ZONE}
          - PUID=${YOUR_USER_PUID}  # 自定义用户 ID
          - PGID=${YOUR_USER_PGID}  # 自定义组 ID
  • 最好用的免费开源博客系统安装搭建

    下载地址

    blossom-1.16.0-web-blog.zip 1.76 MB

    blossom-1.16.0-web-client.zip 16.53 MB

    服务安装

    docker run -d \
      --name blossom-backend \
      -p 9999:9999 \
      -v /home/bl/:/home/bl/ \
      blossom:latest \
      --spring.datasource.url="jdbc:mysql://192.168.1.110:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8" \
      --spring.datasource.username=root \
      --spring.datasource.password=123456
  • 将 Docker 命令转化为 Docker Compose 文件

    如果你每天在正式或个人系统中使用 Docker,你应该知道有一个有用的应用叫 Composerize。在这个简短的指南中,我们将了解什么是 Composerize,以及如何使用 Composerize 在 Linux 中将 docker run 命令转换为 Docker Compose 文件格式。

    什么是 Composerize?

    Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。Docker Compose 只是一个 YAML 文件,我们在其中为 Docker 应用定义服务、网络和卷。

    不是每个人都擅长写高效的 Docker Compose 文件。你们中的一些人可能会发现,甚至写一个简单的 Docker Compose 文件都很困难。不用担心! 看下 Composerize,它可以帮助你从  docker run 命令中创建 Docker Compose 文件。

    Composerize 是一个命令行和基于网络的工具,可以将  docker run 命令转换成 Docker Compose 文件。

    无论  docker run 命令是简单、简短还是冗长、复杂,都没有关系。你所要做的就是把命令传给 Conposerize。Composerize 会立即将 docker run 命令变成 Docker Compose 文件!

    在 Linux 中安装 Composerize

    Composerize 是作为一个网络服务提供的。所以你不需要在你的系统上安装它。如果你因为任何原因想在本地安装它,请继续阅读。

    Composerize 可以用 npm 安装。确保你的系统中已经安装了 Nodejs。如果没有安装,请按照下面的链接来安装 Nodejs。

    安装完 Nodejs 后,运行以下命令来安装 Composerize:

    1. $ npm install composerize

    该命令将只为当前用户安装 Composerize。

    如果你想在全局(全系统)安装它,请运行上述命令并加上  -g 选项,如下所示。

    1. $ npm install composerize - g

    用 Composerize 将 Docker 命令转换为 Docker Compose 文件

    要将  docker run 命令转换为 Docker Compose 格式,只需用 Composerize 运行它,如下所示:

    1. $ composerize docker run - d - p 9000 : 9000 - v / var / run / docker . sock : /var/ run / docker . sock portainer / portainer

    它将以 Docker Compose 文件格式生成内容。

    示例输出:

    1. version : '3.3'
    2. services :
    3. portainer :
    4. ports :
    5. - '9000:9000'
    6. volumes :
    7. - '/var/run/docker.sock:/var/run/docker.sock'
    8. image : portainer / portainer

    Convert Docker Run Commands Into Docker-Compose Files With Composerize

    Convert Docker Run Commands Into Docker-Compose Files With Composerize

    现在在你的  docker-compose.yml 文件中复制上面几行。就这么简单!

    正如我所说,你也可以使用 Composerize 网络服务将  docker run 命令转换成 Docker Compose 格式。

    进入 https://www.composerize.com/,将 docker run 命令粘贴到框中,你就会立即得到 docker-compose.yml 文件!

    Turn Docker Run Commands Into Docker-compose Files Using Composerize

    Turn Docker Run Commands Into Docker-compose Files Using Composerize

    将命令转换为 Docker Compose 文件后,到你保存  docker-compose.yml 文件的位置,运行以下命令来启动 Docker 应用:

    1. $ docker - compose up

    Composerize 是对 Docker 用户有用的工具之一。你现在可以安全地告别漫无边际的 Docker 命令了。

  • 云原生之使用Docker部署开源Leanote蚂蚁笔记

    一、Leanote蚂蚁笔记介绍

    1.Leanote简介

    Leanote 蚂蚁笔记是一款云笔记工具,蚂蚁笔记(又名LeaNote)就是一款国产开源的私有云笔记软件。它支持普通格式笔记、Markdown语法、专业数学公式编辑、和思维脑图,常见的笔记相关功能它都拥有,同时也支持 vim&emacs 输入,持私有本地部署。

    2.Leanote功能

    • Markdown 语法支持
    • 无干扰写作模式
    • Vim和Emacs编辑模式
    • 将笔记导出为 PDF
    • 批注操作
    • 可定制的博客主题
    • 思维导图功能
    • Docker快速本地化部署

    二、本次实践介绍

    1. 本次实践简介

    1.本次实践部署环境为个人测试环境,生产环境请谨慎; 2.本次实践为快速使用docker部署开源Leanote蚂蚁笔记。

    2. 本地环境规划

    本次实践环境规划:
    hostname
    IP地址
    Leanote镜像版本
    操作系统版本
    jeven
    192.168.3.166
    latest
    centos 7.6

    三、检查本地Docker环境

    1. 检查本地Docker版本

    检查Docker版本
    代码语言:shell
    复制
    [root@jeven ~]
    # docker version
    Client: Docker Engine - Community
     Version:           20.10.17
     API version:       1.41
     Go version:        go1.17.11
     Git commit:        100c701
     Built:             Mon Jun  6 23:05:12 2022
     OS/Arch:           linux/amd64
     Context:           default
     Experimental:      true
    
    Server: Docker Engine - Community
     Engine:
      Version:          20.10.17
      API version:      1.41 (minimum version 1.12
    )
      Go version:       go1.17.11
      Git commit:       a89b842
      Built:            Mon Jun  6 23:03:33 2022
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.6.6
      GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
     runc:
      Version:          1.1.2
      GitCommit:        v1.1.2-0-ga916309
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0

    2. 检查Docker服务状态

    检查Docker服务状态,确保Docker服务正常运行。
    代码语言:shell
    复制
    [root@jeven ~]
    # systemctl status docker
    ● docker.service - Docker Application Container Engine
       Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
       Active: active (running) since Mon 2023-05-15 20:34:37 CST; 9h ago
         Docs: https://docs.docker.com
     Main PID: 10133 (dockerd)
        Tasks: 25
       Memory: 1.1G

    四、下载Leanote镜像

    本次使用Leanote容器镜像从dockerhub拉取,版本为latest版本。
    代码语言:shell
    复制
    [root@node ~]
    # docker pull axboy/leanote
    Using default tag: latest
    latest: Pulling from axboy/leanote
    23884877105a: Pull complete 
    bc38caa0f5b9: Pull complete 
    2910811b6c42: Pull complete 
    36505266dcc6: Pull complete 
    a4d269900d94: Pull complete 
    5e2526abb80a: Pull complete 
    d3eece1f39ec: Pull complete 
    358ed78d3204: Pull complete 
    1a878b8604ae: Pull complete 
    978c572f0440: Pull complete 
    35a600ffcf6a: Pull complete 
    fa9f812cdfe6: Pull complete 
    7a8109e27110: Pull complete 
    e7cb12a43d53: Pull complete 
    98477f6eb1fd: Pull complete 
    Digest: sha256:9542a462043c9d293e8eda12e1b48ada77ae411121583631c5fa94083a730ef5
    Status: Downloaded newer image for axboy/leanote:latest
    docker.io/axboy/leanote:latest

    五、部署Leanote应用

    1.创建数据目录

    创建Leanote容器挂载的数据目录
    代码语言:shell
    复制
    [root@node ~]
    # mkdir -p /data/leanote/{db,conf,files,upload}
    [root@node ~]
    # cd /data/leanote/
    [root@node leanote]
    # 

    2.创建Leanote容器

    使用docker-cli命令快速创建Leanote容器。
    代码语言:shell
    复制
    docker run -d -p 9800:9000 \
        -e "TZ=Asia/Shanghai"
    \
        --restart
    =always\
        -v /data/leanote/db:/data/db \
        -v /data/leanote/conf/:/data/leanote/conf \
        -v /data/leanote/files:/data/leanote/files \
        -v /data/leanote/upload:/data/leanote/public/upload \
        -m 50M --oom-kill-disable --memory-swap=-1\
        --name leanote \
        axboy/leanote
    image.png
    image.png

    3.查看Leanote容器状态

    检查Leanote容器状态状态
    代码语言:shell
    复制
    [root@node leanote]
    # docker ps
    CONTAINER ID   IMAGE                                                   COMMAND                  CREATED          STATUS          PORTS                                                                                                                             NAMES
    587ff7c0b1c7   axboy/leanote                                           "docker-entrypoint.s…"   18 seconds ago   Up 14 seconds   27017/tcp, 0.0.0.0:9800->
    9000/tcp, :::9800->
    9000/tcp                                                                              leanote

    4.查看Leanote占用资源

    检查Leanote容器所在系统资源。
    代码语言:shell
    复制
    [root@node leanote]
    # docker stats --no-stream leanote 
    CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT   MEM %     NET I/O     BLOCK I/O       PIDS
    587ff7c0b1c7   leanote   0.30%     31.5MiB / 50MiB     63.01%    656B / 0B   541MB / 904MB   43

    六、访问Leanote首页

    直接访问:http://192.168.3.166:9800/ 进入Leanote首页
    image.png
    image.png

    七、Leanote基本操作

    1.设置简体中文

    选择语言为简体中文
    image.png
    image.png

    2.登录Leanote

    user1 username: admin, password: abc123 (管理员, 只有该用户才有权管理后台, 请及时修改密码)
    user2 username: demo@leanote.com, password: demo@leanote.com (仅供体验使用)
    image.png
    image.png
    image.png
    image.png

    3.新建笔记

    image.png
    image.png

    4. 后台管理

    进入Leanote蚂蚁笔记的后台管理
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    八、Leanote的博客功能

    1. 设置笔记为公开博客

    将个人笔记设置为公开博客
    在这里插入图片描述
    在这里插入图片描述

    2. 查看个人博客页面

    选择“我的博客”功能模块,进入个人博客页面。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3. 博客设置

    选择博客设置,进入博客管理页面。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4. 更换博客主题

    在博客管理页面,选择个人喜欢的主题。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表
  • 免费的异地组网神器Docker搭建教程-ZeroTiger

    v2-51c5c3590efa6bfbc4f4db36053da73c_1440w

    ZeroTiger是一个国外的服务商所提供的基于P2P的组网方案,它可以通过软件的形式实现将我们需要组网的设备加入到一个虚拟的局域网中,从而实现数据的交换。

    组网逻辑:

    1.组网设备接入Zerotier,并通过ID加入指定的虚拟网络。

    2.当设备之间发生数据交换时,网络调度设备间尝试P2P直连。

    3.失败时,从网络中寻找moon服务器作为中转。

    我们使用自己的云服务自建Moon服务器加入Zerotier网络,当P2P失败时,数据始终通过我们自建的私有根服务器作为中转。私有网络需要认证才可以加入,具有一定的安全性。

    1.搭建Zerotier根服务器

    依然使用我们的老伙计docker来实现,创建很简单,一条命令创建即可。

    docker run --restart=on-failure:3 -d --name ztncui -e HTTP_PORT=4000 -e HTTP_ALL_INTERFACES=yes -e ZTNCUI_PASSWD=admin@123 -p 4000:4000 keynetworks/ztncui
    
    v2-50aeecc54c9895c8574b0a4165221526_1440w

    2.搭建Moon服务器

    前面也介绍过了,使用Zerotier在一定程度上是可以P2P打洞成功的,不成功的时候就可以使用我们的Moon服务器来进行中转,保证完成组网。此服务需要占用tcp及udp的9993端口

    # 创建一个持久化存放文件的目录
    mkdir -p /opt/docker/moon
    # 获得云服务器的公网ip
    public_ip=`curl ip.sb`
    # 建立moon服务器
    docker run --name zerotier-moon -d -p 9993:9993 -p 9993:9993/udp -v /opt/docker/moon:/var/lib/zerotier-one jonnyan404/zerotier-moon -4 $public_ip
    
    v2-377be9d8bf36de4ac5160a44f9a8d913_1440w

    到此我们的服务端就搭建好了。查看一下日志,记录一下moon id,后面加入会用到。

    docker logs -f zerotier-moon
    
    v2-248e447426ba45b47f8e359bd955bb98_1440w

    3.创建网络

    使用我们云服务器 ip:4000访问,ip为云服务器的公网ip,打开配置页。

    v2-9bfa097eeda8bb540a7ddc22ce94381d_1440w

    点击右上角的login登录。

    v2-ab0dbc5c15a5416a8067f147e609fdfc_1440w

    使用默认用户名和密码登录: admin/admin@123,登录完成后根据提示修改密码。

    v2-ee9ba5ccd5a0ca521cefe77d2b87540a_1440w

    设置完成后,切换到Add network选项卡,任意为网络起一个名字。

    v2-197807d2b2360b9f5e8307fac2b18f49_1440w

    点击Create Network

    v2-90b862a8d1c0e22baaabf43fb19fe321_1440w

    这样我们的网络就设置好了,请记录创建好的网络id。

    v2-a999e77c5536b34cc3e067f1bcad6d9e_1440w

    回到上一级页面,最后在network上,设置网段,可以点击自动生成,然后提交。

    v2-be17385a59254559fa9e2c998834484c_1440w
    v2-6914898a38247435e41e136fb1b15019_1440w

    4.搭建客户端

    为了方便演示不同平台,我这里以一台Linux和一台Windows为例子演示组网过程。

    • Windows:

    首先到官方网站上下载Windows客户端:

    https://www.zerotier.com/download/
    

    安装很简单,下一步即可。完成后,在开始菜单中可以找到安装的ZeroTier软件,右下角会多出图标,打开面板。把之前记下的网络填入下方,点击Join Network。

    v2-90b6b0635b64ad049b3f0059efb7f38a_1440w

    回到网页上授权,并定义一个友好的名字,方便辨认。

    v2-9f1bd0316bb04179d7f23a607f4513b2_1440w

    客户端上,状态显示成功时,表示搭建成功。

    v2-b27cba8357f35f29e3ab031350ce8648_1440w

    最后在配置一下加入moon服务器,打开cmd。

    cd C:\ProgramData\ZeroTier\One
    zerotier-cli orbit [moon_id] [moon_id]
    

    将之前记录的moon id填进去后执行。

    v2-383e302d78e5e2ec40d3684af61da546_1440w

    查看是否加入monn节点:

    zerotier-cli listpeers
    

    可以看到其中包含我们自建moon服务器的公网ip地址。

    v2-025e0f9ee4bb76ec529a9b5e82cdab30_1440w
    • Linux:

    拉取镜像:

    docker pull bltavares/zerotier
    

    配置镜像:

    docker run -d --device=/dev/net/tun \
    --name zerotier-one \
    --net=host \
    --restart=always \
    --cap-add=NET_ADMIN \
    --cap-add=SYS_ADMIN \
    -v /var/lib/zerotier-one:/var/lib/zerotier-one \
    bltavares/zerotier:latest
    
    v2-648882187c5913ad9777c114626082d2_1440w

    加入zerotier网络

    docker exec zerotier-one zerotier-cli join [网络ID]
    
    v2-5142e213bdf1362dca2a78aee6b9b3e1_1440w

    显示 200 join ok 即添加成功。同样的需要在网页上去授权此节点。可以看到已经有虚拟ip生成,可以测试下两台主机之间的联通性。

    v2-e98306bed8240d3ca8f6ab351e8d4286_1440w

    发现已经可以使用p2p建立虚拟网络了,一台四川的服务器和一台北京的阿里云服务器,延迟大概40ms左右,效果还是很不错的。

    v2-16b12d71bb25015344ab47c125ad11f3_1440w

    最后再加入moon服务器,同样的需要把moon_ID的值修改为自建moon服务器的id。

    #加入moon服务器
    docker exec zerotier-one zerotier-cli orbit [moon_ID] [moon_ID]
    #确认是否加入
    docker exec zerotier-one zerotier-cli listpeers 
    
    v2-20043a27bed063d5f09ecb53d7728d62_1440w

    至此~

  • Docker – 通过容器安装部署PostgreSQL数据库

      PostgreSQL 被业界誉为“世界上最先进的开源关系型数据库”,并且它同时还支持 NoSQL 数据类型(JSON/XML/hstore)。我在之前的文章中介绍了如何使用官方安装程序进行 PostgreSQL 数据库的安装(点击查看),本文介绍另一种方式:通过 Docker 来快速搭建 PostgreSQL 数据库环境。

    1,拉取镜像

    首先执行如下命令将镜像下载到本地:
    1
    docker pull postgres

    2,启动容器

    (1)执行如下命令实例化 PostgreSQL 服务:
    参数说明:
    • -d:表示在后台启动容器;
    • -p 5432:5432:容器内部的 5432 端口映射主机的 5432 端口;
    • –name postgresql:将容器命名为 postgresql
    • -v /home/user/pgdata:/var/lib/postgresql/data:挂载目录,其中 /home/user/pgdata 是宿主机的目录
    • -e POSTGRES_PASSWORD=123:数据库 postgres 密码设置为 123
    1
    docker run -d -p 5432:5432 --name=postgresql -v /home/user/pgdata:/ var /lib/postgresql/data -e POSTGRES_PASSWORD=123 postgres
    (2)执行 docker ps 命令确认容器启动成功:
    202103111838232658

    3,开放端口

    如果服务器开启了防火墙的话,还要执行如下命令开放端口:
    1
    2
    firewall-cmd --permanent --add-port=5432/tcp
    firewall-cmd --reload

    4,连接测试

    (1)我们使用客户端工具(比如 Navicat),输入相关信息后连接:
    2021031116464481954
    (2)连接成功后就可以看到相关数据了:
    2021031116474945760

    原文出自:www.hangge.com  转载请保留原文链接:https://www.hangge.com/blog/cache/detail_3073.html

  • Docker – 实现本地镜像的导出、导入(export、import、save、load)

    有时我们需要将一台电脑上的镜像复制到另一台电脑上使用,除了可以借助仓库外,还可以直接将镜像保存成一个文件,再拷贝到另一台电脑上导入使用。

        对于镜像的导出和导入,Docker 提供了两种方案,下面分别进行介绍。

    一、使用 export 和 import

    1,查看本机的容器

    这两个命令是通过容器来导入、导出镜像。首先我们使用 docker ps -a 命令查看本机所有的容器。
    2019050717392713580

    2,导出镜像

    (1)使用 docker export 命令根据容器 ID 将镜像导出成一个文件。
    1
    docker export f299f501774c > hangger_server.tar
  • Docker镜像的导入导出

    最新

    导入导出命令介绍

    涉及的命令有export、import、save、load

    save

    • 命令
      docker save [options] images [images...]
    • 示例
      docker save -o nginx.tar nginx:latest

      docker save > nginx.tar nginx:latest
      其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)

    load

    • 命令
      docker load [options]
    • 示例
      docker load -i nginx.tar

      docker load < nginx.tar
      其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息

    export

    • 命令
      docker export [options] container
      这里写图片描述
    • 示例
      docker export -o nginx-test.tar nginx-test
      其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)

    import

    • 命令
      docker import [options] file|URL|- [REPOSITORY[:TAG]]
      这里写图片描述
    • 示例
      docker import nginx-test.tar nginx:imp

      cat nginx-test.tar | docker import - nginx:imp

    区别

    • export命令导出的tar文件略小于save命令导出的
      这里写图片描述
    • export命令是从容器(container)中导出tar文件,而save命令则是从镜像(images)中导出
    • 基于第二点,export导出的文件再import回去时,无法保留镜像所有历史(即每一层layer信息,不熟悉的可以去看Dockerfile),不能进行回滚操作;而save是依据镜像来的,所以导入时可以完整保留下每一层layer信息。如下图所示,nginx:latest是save导出load导入的,nginx:imp是export导出import导入的。
      这里写图片描述

    建议

    可以依据具体使用场景来选择命令

    • 若是只想备份images,使用save、load即可
    • 若是在启动容器后,容器内容有变化,需要备份,则使用export、import
  • elasticsearch 安装IK分词插件

    docker run --name elasticsearch -p 9200:9200 \
     -p 9300:9300 \
     -e "discovery.type=single-node" \
     -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
      -v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
     -v /home/elasticsearch/data:/usr/share/elasticsearch/data \
     -v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
     -d elasticsearch:7.7.0
    --name elasticsearch:将容器命名为 elasticsearch
    -p 9200:9200:将容器的9200端口映射到宿主机9200端口
    -p 9300:9300:将容器的9300端口映射到宿主机9300端口,目的是集群互相通信
    -e "discovery.type=single-node":单例模式
    -e ES_JAVA_OPTS="-Xms64m -Xmx128m":配置内存大小
    -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:将配置文件挂载到宿主机
    -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data:将数据文件夹挂载到宿主机
    -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins:将插件目录挂载到宿主机(需重启)
    -d elasticsearch:7.7.0:后台运行容器,并返回容器ID

    2.2、安装ik分词器

    进入已经启动成功的elasticsearch容器。

    docker exec -it elasticsearch /bin/bash
    
    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip
  • docker容器打包成镜像

    要将一个Docker容器打包成一个镜像,你需要使用docker commit命令。这个命令会基于容器的当前状态创建一个新的镜像。

    以下是使用docker commit命令的基本步骤:

    1. 确定要打包的容器ID或名称。可以使用docker ps命令查看正在运行的容器。
    2. 使用docker commit命令创建镜像,指定镜像的名称和标签。

    例如,如果你有一个名为my_container的容器,想要将它打包为名为my_image的镜像,并且标签为v1.0,你可以运行以下命令:

    bashdocker commit my_container my_image:v1.0

    完成这个命令后,my_container容器的当前状态就会被保存为一个名为my_image,标签为v1.0的新镜像。

    注意,这种方式创建的镜像只包含了容器运行时的状态,不包含构建时的历史和上下文信息。如果你想要创建一个可重复构建的Docker镜像,你应该使用Dockerfile来构建

    1. 登录阿里云Docker Registry

    $ docker login --username=tb55571********@aliyun.com registry.cn-beijing.aliyuncs.com

    用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

    您可以在访问凭证页面修改凭证密码。

    2. 从Registry中拉取镜像

    $ docker pull registry.cn-beijing.aliyuncs.com/houlijiang/es-ik:[镜像版本号]

    3. 将镜像推送到Registry

    $ docker login --username=tb55571********@aliyun.com registry.cn-beijing.aliyuncs.com
    $ docker tag [ImageId] registry.cn-beijing.aliyuncs.com/houlijiang/es-ik:[镜像版本号]
    $ docker push registry.cn-beijing.aliyuncs.com/houlijiang/es-ik:[镜像版本号]

    请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

    4. 选择合适的镜像仓库地址

    从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

    如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-beijing.aliyuncs.com 作为Registry的域名登录。

    5. 示例

    使用”docker tag”命令重命名镜像,并将它通过专有网络地址推送至Registry。

    $ docker images
    REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
    $ docker tag 37bb9c63c8b2 registry-vpc.cn-beijing.aliyuncs.com/acs/agent:0.7-dfb6816

    使用 “docker push” 命令将该镜像推送至远程。

    $ docker push registry-vpc.cn-beijing.aliyuncs.com/acs/agent:0.7-dfb6816