Docker构建镜像并上传Docker Hub

使用DaoCloud加速下载docker镜像

  • 注册DaoCloud注册
  • 在更多->加速器中使用命令,会自动帮你创建/etc/docker/daemon.json文件
  • 重启docker服务

    sudo service docker restart
  • 踩坑:如果在centos7中docker服务重启失败,建议打开/etc/docker/daemon.json文件,修改为如下形式

    {
        "registry-mirrors": [
            "加速地址"
        ],
        "insecure-registries": []
    }
  • 此方法使用于Docker 版本在 1.12 或更高

构建镜像

两种方法:commit,build Dockerfile

准备工作

  • 注册Docker Hub注册
  • 登录

      sudo docker login

    clipboard.png

方法一:docker commit

  • 启动容器

      sudo docker run -it -p 80 --name commit_test ubuntu bash
  • 安装必要工具

      apt-get update
      apt-get install -y nginx
  • docker commit

      sudo docker commit -a 'awebone' -m 'ubuntu_nginx' commit_test docker.io/awebone/ubuntu_nginx
      
  • docker 本地测试

      sudo docker run -d --name nginx_web1 -p 32769:80 docker.io/awebone/ubuntu_nginx nginx -g "daemon off;"
      
      sudo docker ps -a
      
      curl http://127.0.0.1:32769

    出现?这个说明成功了?
    clipboard.png

  • docker push

      sudo docker push awebone/ubuntu_nginx

    clipboard.png

方法二:build Dockerfile

  • 本地创建文件

      mkdir -p dockerfile/df_test
      
      cd dockerfile/df_test/
      
      vim Dockerfile
  • 编辑Dockerfile文件

      # First dockerfile for test
      FROM ubuntu:14.04
      MAINTAINER awebone "610958401@qq.com"
      RUN apt-get update
      RUN apt-get install -y nginx
      COPY index.html /usr/share/nginx/html/
      EXPOSE 80
      ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
  • 构建

      sudo docker build -t='awebone/df_test' .

    每步都会产生一个id,是中间层镜像,注意命令最后一个点是指对当前文件夹
    clipboard.png

  • docker 本地测试

      sudo docker run -d --name nginx_web2 -p 32770:80 docker.io/awebone/df_test nginx -g "daemon off;"
      
      sudo docker ps -a
      
      curl http://127.0.0.1:32770
  • docker push

      sudo docker push awebone/df_test

Awebone
45 声望3 粉丝

Show me your code!