上传镜像到dockerhub


目录
  1. 1. 注册docker hub帐号
  2. 2. 上传镜像
  3. 3. 修改docker hub镜像tag

很多docker hub上拉下来的镜像,通过修改配置文件等操作,定制成了适合自己的镜像,以后用自己的镜像就可以,因此需要上传到docker hub,以后可以像代码一样管理维护自己的docker镜像。

注册docker hub帐号

用github帐号登录比较省事,进入之后,到设置里,重置密码,github关联的邮箱会收到一个邮件,点击里面的reset password,设定新密码(github帐号登录,不知道原密码)。

上传镜像

  • 建立镜像
    docker build -t qs100371/phpserver
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    root@fnos:/vol1/1000/files/phpserver# docker build -t qs100371/phpserver .
    [+] Building 257.0s (12/12) FINISHED docker:default
    => [internal] load build definition from Dockerfile 0.0s
    => => transferring dockerfile: 810B 0.0s
    => [internal] load metadata for docker.io/library/php:7.3-fpm-alpine3.11 6.8s
    => [internal] load .dockerignore 0.1s
    => => transferring context: 2B 0.0s
    => [internal] load build context 0.1s
    => => transferring context: 78.09kB 0.0s
    => [1/7] FROM docker.io/library/php:7.3-fpm-alpine3.11@sha256:b0d07b0ccb6847add12a222025066d406a55f055acfce79e935e3688fe2213dc 12.0s
    => => resolve docker.io/library/php:7.3-fpm-alpine3.11@sha256:b0d07b0ccb6847add12a222025066d406a55f055acfce79e935e3688fe2213dc 0.1s
    => => sha256:b0d07b0ccb6847add12a222025066d406a55f055acfce79e935e3688fe2213dc 1.65kB / 1.65kB 0.0s
    => => sha256:f26b38e1d1e503719e9a93306518ee64cb040591e2e77455f9404dcbe0abe0ea 2.41kB / 2.41kB 0.0s
    => => sha256:0a6724ff3fcd51338afdfdc2b1d4ffd04569818e31efad957213d67c29b45101 2.81MB / 2.81MB 1.6s
    => => sha256:e44499b54ee1b3a82620949ded34d8dff62f62c31af825813c411dca02221545 10.81kB / 10.81kB 0.0s
    => => sha256:30177fe68f41251db4154b9ede629b50cf46f8142292847838732a38bb194984 1.35MB / 1.35MB 4.9s
    => => sha256:5c3561a9c216a44f78e647d18c1b886f33965e78ba6f4f469a4ae39a83b35570 1.23kB / 1.23kB 2.8s
    => => extracting sha256:0a6724ff3fcd51338afdfdc2b1d4ffd04569818e31efad957213d67c29b45101 0.1s
    => => sha256:aea44d2ba8a00c1289b5e933f447c8bfdcacfac338c29df91beeb2d04e9cf252 222B / 222B 4.2s
    => => sha256:32afa3d697dcdc8db71583c1f11ea63e83fa0b50679d193e76489257d7a75f60 12.16MB / 12.16MB 6.1s
    => => sha256:56873af001f51516cb8bc2a707ae9c600052991fdca886ef05b4945d52b43790 499B / 499B 6.6s
    => => extracting sha256:30177fe68f41251db4154b9ede629b50cf46f8142292847838732a38bb194984 0.2s
    => => sha256:733923ed2a99b60252d644a85b69f7e161c7657dcfc78c5b1bba319ec6c04de9 14.45MB / 14.45MB 8.3s
    => => extracting sha256:5c3561a9c216a44f78e647d18c1b886f33965e78ba6f4f469a4ae39a83b35570 0.0s
    => => extracting sha256:aea44d2ba8a00c1289b5e933f447c8bfdcacfac338c29df91beeb2d04e9cf252 0.0s
    => => extracting sha256:32afa3d697dcdc8db71583c1f11ea63e83fa0b50679d193e76489257d7a75f60 0.2s
    => => sha256:bb1c97b69d9bec328df231a72fdad42d18c1c876dc8fcdd131252c1a7831b500 2.26kB / 2.26kB 8.3s
    => => extracting sha256:56873af001f51516cb8bc2a707ae9c600052991fdca886ef05b4945d52b43790 0.0s
    => => sha256:9e92f7703aa501096d99f3ca2ab4eb8b2b31bf9bd8c6432d3e020b769c671623 16.91kB / 16.91kB 9.2s
    => => extracting sha256:733923ed2a99b60252d644a85b69f7e161c7657dcfc78c5b1bba319ec6c04de9 0.9s
    => => sha256:3343336c836137a1ebc8b7ebb2489b6a54ea587233fc68221a80af1470e824af 8.41kB / 8.41kB 10.9s
    => => extracting sha256:bb1c97b69d9bec328df231a72fdad42d18c1c876dc8fcdd131252c1a7831b500 0.0s
    => => extracting sha256:9e92f7703aa501096d99f3ca2ab4eb8b2b31bf9bd8c6432d3e020b769c671623 0.0s
    => => extracting sha256:3343336c836137a1ebc8b7ebb2489b6a54ea587233fc68221a80af1470e824af 0.0s
    => [2/7] ADD repositories /etc/apk/repositories 0.2s
    => [3/7] ADD default.conf / 0.1s
    => [4/7] ADD index.php / 0.1s
    => [5/7] ADD run.sh / 0.2s
    => [6/7] ADD php.ini /usr/local/etc/php/ 0.2s
    => [7/7] RUN apk update && apk add nginx && apk add m4 autoconf make gcc g++ linux-headers && docker-php-ext-install pdo_ 236.6s
    => exporting to image 0.4s
    => => exporting layers 0.4s
    => => writing image sha256:7a1366cb9eb3d6ce5416c10a1385a62112b7b5df546dc5fd7d7496ba94165db6 0.0s
    => => naming to docker.io/qs100371/phpserver
  • docker hub帐号登录
    docker login -u qs100371
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     root@fnos:/vol1/1000/files/phpserver# docker login -u qs100371

    i Info → A Personal Access Token (PAT) can be used instead.
    To create a PAT, visit https://app.docker.com/settings


    Password:

    WARNING! Your credentials are stored unencrypted in '/root/.docker/config.json'.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/go/credential-store/

    Login Succeeded
  • 上传镜像
    docker push qs100371/phpserver
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     root@fnos:/vol1/1000/files/phpserver# docker push qs100371/phpserver
    Using default tag: latest
    The push refers to repository [docker.io/qs100371/phpserver]
    9a3c849e049d: Pushed
    7ebe7b23d1f1: Pushed
    77ef80f8a151: Pushed
    c8e9db37afdd: Pushed
    c97ec010c81d: Pushed
    095a6559b5f8: Pushed
    b503d97da376: Mounted from library/php
    2369208c7351: Mounted from library/php
    4fce11b00861: Mounted from library/php
    dfcac7c9057e: Mounted from library/php
    978322943e04: Mounted from library/php
    768b981d8c93: Mounted from library/php
    5c19c2fd1131: Mounted from library/php
    c29580291b6c: Mounted from library/php
    0eb066b8b595: Mounted from library/php
    0fcbbeeeb0d7: Mounted from library/php
    latest: digest: sha256:182942952d055bd2f8150beb458a229c708b0cbb700b3a98f4277f8455034d6c size: 3660

在不同主机上生成的镜像tag都是latest,只显示最新的一个,之前的还在,不知道怎么改tag。

修改docker hub镜像tag

1
2
docker tag qs100371/phpserver:latest qs100371/phpserver:v1
docker push qs100371/phpserver:v1

服务器上已有此镜像,并不会实际上传,只修改了tag。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
root@armbian:/data/php# docker tag a01d689762e1 qs100371/phpserver:v1
root@armbian:/data/php# docker push qs100371/phpserver:v1
The push refers to repository [docker.io/qs100371/phpserver]
7c2c9299fc3f: Layer already exists
7ca457e7c1dd: Layer already exists
4b74ddfda19e: Layer already exists
2221087bbb25: Layer already exists
70926ed51c84: Layer already exists
f521dad3cd4e: Layer already exists
4530fb17527f: Layer already exists
b9bd58eed14a: Layer already exists
fef9d3931c24: Layer already exists
0a9193454ae1: Layer already exists
ea2456e60fad: Layer already exists
b71408fda661: Layer already exists
cd3c8c08d739: Layer already exists
2b313be3e8c7: Layer already exists
ba1f1fddfa56: Layer already exists
4d0185f84bef: Layer already exists
v1: digest: sha256:54d9723a00f9b5110d4b8566495773f2368fa6fe621a61e9ee5e5eade6068c39 size: 3660
Top, Home