一.镜像上传

1.在https://hub.docker.com 注册一个账号

2.创建一个仓库

3.取到containerID

#docker ps

  

4.commit容器

#docker commit {containerID} rorshach/nginx:v1

  

5.登录hub docker

#docker login

  

ps:
输入账密

6.push镜像:

#docker push rorshach/nginx:v1

7.push完成后就可以在hub.docker.com中看到你的镜像了

二.Dockerfile

1.常用指令:
(1).FROM
指定基础镜像,必须放在Dockerfile第一行,表示从哪个镜像构建

如:FROM centos
FROM scratch // 表示从空白镜像开始构建

(2).RUN
执行命令
a.shell 格式: RUN <命令>
如:

RUN echo 'hello world' > /usr/share/nginx/html/index.html

  

b.exec 格式: RUN ["可执行文件", "参数1", "参数2"]
如:

RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz"

每一个 RUN 的行为,就和刚才我们手工建立镜像的过程一样:新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
对于多个命令,我们可以使用&&将命令串联起来

RUN 命令1 && 命令2 && 命令3

  

(3).CMD
功能为容器启动时要运行的命令,不会创建新的镜像层
格式为以下三种:

CMD ["executable","param1","param2"]
CMD ["param1","param2"]
CMD command param1 param2

  

如:

CMD nginx -g 'daemon off;'

  

(4).ADD 和 COPY
可以将本地的文件复制到容器中
格式:

COPY <src>... <dest>
COPY ["<src>",... "<dest>"]

  

ADD可以是远程文件,但COPY只能是本地文件;相当于scp;只是免账密

(5).EXPOSE
指定镜像程序将会在哪个端口提供服务,可以通过docker inspect <container-id>指令检索出来,EXPOSE指令实际上只是一个约定,需要在docker run 发布时以-p标志的方式暴露,上述的是小写的p需要指定主机到到虚拟到主机端口之间的映射,而大写的P是将镜像中的端口暴露到主机的随机端口,具体暴露到哪个端口可以通过docker ps查看.
如:
EXPOSE 80

(6).MAINTAINER(可选)
指定作者
如:
MAINTAINER 作者

(7).ENV
用于配置环境变量
如:
ENV JAVA_HOME=/opt/jdk-9

示例Dockerfile文件:

# base image
FROM centos:7
# MAINTAINER
MAINTAINER rorshach rorshach@mail.com RUN yum update && rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm && yum install -y nginx
CMD nginx -g 'daemon off;' #镜像启动后运行nginx EXPOSE 80

  

2.构建

#docker build -t <镜像名称> <目录> -f <Dockerfile文件名>

如果Dockerfile的文件名为Dockerfile,则-f可以省略

镜像上传和Dockerfile的更多相关文章

  1. alpine制作jdk、jre镜像、自定义镜像上传阿里云

    alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBo ...

  2. docker自定义镜像上传阿里云

    1.alpine制作jdk镜像 2.Alpine制作jre镜像(瘦身) 3.Docker镜像上传至阿里云 alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻 ...

  3. Docker之Alpine制作jre镜像(瘦身)+自定义镜像上传阿里云

    alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBo ...

  4. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像上传-11

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像上传-11 欢迎加QQ群:1026880196 进行交流学习 镜像上传 #controller1 ...

  5. 如何将docker 镜像上传到docker hub仓库

    如何将docker 镜像上传到docker hub仓库 目录 如何将docker 镜像上传到docker hub仓库 背景 1.注册docker hub账号 2.docker hub上创建仓库 3.d ...

  6. Openstack的镜像上传原理

    openstack的horizon的上传镜像流程 通过html的form表单上传文件 先上传到horizon指定的临时目录,存储起来 通过glance-api请求接口 实际上glance-api也是提 ...

  7. docke镜像上传到dockerhub仓库和阿里云docker仓库的方法

    操作指南   1.  登录阿里云docker registry: $ sudo docker login --username=linjiaxin897591495 registry.cn-hangz ...

  8. Docker 镜像上传到docker hub仓库

    1 先创建docker hub 帐号 ,并创建仓库 https://hub.docker.com/ 首先你需要一个docker hub 帐号,记住username,password,email .后面 ...

  9. jenkins构建docker镜像上传到harbor并发布到kubernetes

    很早之前写过一篇jenkins集成docker的文章,使用的是CloudBees Docker Build and Publish plugin插件.这篇文章是直接使用shell脚本做的,主要是这次有 ...

随机推荐

  1. 关于hadoop处理大量小文件情况的解决方法

    小文件是指那些size比HDFS的block size(默认64m)小的多的文件.任何一个文件,目录和bolck,在HDFS中都会被表示为一个object存储在namenode的内存中,每一个obje ...

  2. 876. Middle of the Linked List【Easy】【单链表中点】

    Given a non-empty, singly linked list with head node head, return a middle node of linked list. If t ...

  3. ZOJ 3324 Machine

    线段树,延迟标记. 记录一下每个节点代表的区间的最小值,以及左右端点是否为最小值,记录区间被下压几次作为延迟标记,再记录一下这个区间中有多少个最小值的连通块. $n$最大有$1$亿,可以开动态线段树避 ...

  4. Unity游戏开发之C#快速入门

    C#是微软团队在开发.NET框架时开发的,它的构想接近于C.C++,也和JAVA十分相似,有许多强大的编程功能. 个人感受是C#吸收了众多编程语言的优点,从中可以看到C.C++.Java.Javasc ...

  5. 阿里云轻量级学生机搭建FTP最新教程

    碰了几次壁,我整理一下分析自己在阿里云上成功安装FTP的教程. 1.使用root用户进入云服务器. 2.rpm  -qa|grep vsftpd 查看是否安装了ftp,一般阿里云服务器你以前没安装过, ...

  6. Linux命令之telnet

    telnet [-8EFKLacdfrx] [-X authtype] [-b hostalias] [-e escapechar] [-k realm] [-l user] [-n tracefil ...

  7. ARC-100 D - Equal Cut

    题面在这里! 我们枚举一下第2和第3段的分界点,显然这种情况下 第1与第2  和  第3与第4  之间的分界点都只有两种情况可能最优,吧这四种情况讨论一下就好了. 两边的分界点可以单调扫过去... # ...

  8. 【最短路】【dijkstra】【二进制拆分】hdu6166 Senior Pan

    题意:给你一张带权有向图,问你某个点集中,两两结点之间的最短路的最小值是多少. 其实就是dijkstra,只不过往堆里塞边的时候,要注意塞进去它是从集合中的哪个起始点过来的,然后在更新某个点的答案的时 ...

  9. BigInt的实现——C++编程风格读书笔记

    C++编程风格这本书前面一些章节都觉得很简明易懂,但是读到效率这一章是才充分认识到读别人的代码还是很痛苦的一件事.书中给出的需要改进的初始类如下: class BigInt { private: ch ...

  10. 星际争霸 虚空之遗 人族5BB 操作流程

    人族5BB rush timing 3min-3min30 一波战术,对面双开不侦察应该就GG了. 14农民BS,建议在第一个BS后的100矿,马上接上一个BS堵口,基本上对面是侦察不到的,特别是内双 ...