### 发布自己的镜像 * 进入本地磁盘,这里为 `Tinywan-Docker-Image`目录 ``` $ cd Tinywan-Docker-Image/ ``` * 新建一个目录`alpine-docker`,然后进入这个目录 ``` $ mkdir alpine-docker $ cd alpine-docker/ ``` * 创建一个名为Dockerfile的文件,在里面写入以下内容: ``` $ vim Dockerfile FROM alpine:latest MAINTAINER sbb CMD echo "hello world" ``` * 然后在当前目录执行下面命令就会生成docker镜像 ``` $ docker build -t tinywan/alpine-docker:1.0 . Sending build context to Docker daemon 2.048kB Step 1/3 : FROM alpine:latest latest: Pulling from library/alpine 4fe2ade4980c: Pulling fs layer 4fe2ade4980c: Verifying Checksum 4fe2ade4980c: Download complete 4fe2ade4980c: Pull complete Digest: sha256:621c2f39f8133acb8e64023a94dbdf0d5ca81896102b9e57c0dc184cadaf5528 Status: Downloaded newer image for alpine:latest ---> 196d12cf6ab1 Step 2/3 : MAINTAINER sbb ---> Running in 06c442555084 Removing intermediate container 06c442555084 ---> 1e26678ddab9 Step 3/3 : CMD echo "hello world" ---> Running in fd3b41521df6 Removing intermediate container fd3b41521df6 ---> e91fec36cc75 Successfully built e91fec36cc75 Successfully tagged tinywan/alpine-docker:1.0 ``` * 列出刚才构建的镜像 ``` $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE tinywan/alpine-docker 1.0 e91fec36cc75 2 seconds ago 4.41MB alpine latest 196d12cf6ab1 3 months ago 4.41MB ``` * 运行镜像 ``` $ docker run --rm tinywan/alpine-docker:1.0 hello world ``` >[info] `--rm` 选项可以在容器运行完毕立即删除容器。 >#### push镜像到 docker hub个人的仓库 * 找到本地镜像的ID ``` $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE tinywan/alpine-docker 1.0 e91fec36cc75 4 minutes ago 4.41MB alpine latest 196d12cf6ab1 3 months ago 4.41MB ``` * 登陆Hub >[info] 语法:`docker login --username=username --password=password --email=email` ``` $ docker login --username=tinywan --password=tinywan123 WARNING! Using --password via the CLI is insecure. Use --password-stdin. Login Succeeded ``` * 打标签 `docker tag local-image:tagname new-repo:tagname` >[info] 语法:`docker tag <imageID> <namespace>/<image name>:<version tag eg latest>` ``` $ docker tag e91fec36cc75 tinywan/alpine-docker:1.0 ``` * push镜像 >[info] 语法:`docker push <namespace>/<image name>` ``` $ docker push tinywan/alpine-docker The push refers to repository [docker.io/tinywan/alpine-docker] df64d3292fd6: Preparing df64d3292fd6: Mounted from library/alpine 1.0: digest: sha256:eaeb955abe71bebbd2504532bb1a67648cc1ca4b50646e4accf583fb222eb66f size: 528 ``` * 个人仓库查看 ![](http://tinywan-develop.oss-cn-hangzhou.aliyuncs.com/18-12-18/92995933.jpg) * 在阿里云主机使用 语法:`docker push tinywan/alpine-docker:tagname` ``` $ docker pull tinywan/alpine-docker:1.0 1.0: Pulling from tinywan/alpine-docker 4fe2ade4980c: Already exists Digest: sha256:eaeb955abe71bebbd2504532bb1a67648cc1ca4b50646e4accf583fb222eb66f Status: Downloaded newer image for tinywan/alpine-docker:1.0 $ docker run --rm tinywan/alpine-docker:1.0 hello world ``` * `pull `时候如果不指定版本,则系统默认下载最新版本: ``` $ docker pull tinywan/alpine-docker Using default tag: latest Error response from daemon: manifest for tinywan/alpine-docker:latest not found ``` > 所以要重新构建,发布一个最新版本上去 * 1、修改 `Dockerfile` * 2、构建 `docker build -t tinywan/alpine-docker:latest .` * 3、标签 `docker tag 1f5fdd4653a4 tinywan/alpine-docker:latest ` * 4、推送 `docker push tinywan/alpine-docker` * 继续查询最细版本 ![](http://tinywan-develop.oss-cn-hangzhou.aliyuncs.com/18-12-18/62773582.jpg) ### 阿里云推送记录 1、构建镜像 ``` docker build --rm --no-cache -t tinywan/dnmp:php7.0-v1 . ``` 2、登录 ``` docker login --username=756684177@qq.com registry.cn-beijing.aliyuncs.com ``` 3、镜像关联 ``` docker tag 8072fc8cca59 registry.cn-beijing.aliyuncs.com/tinywan/dnmp:php7.0-v1 ``` 4、推送到阿里云镜像仓库 ``` docker push registry.cn-beijing.aliyuncs.com/tinywan/dnmp:php7.0-v1 ```