docker -help    # 显示帮助
docker COMMAND -help    # 帮助信息更详细
docker start “容器名称”    # 启动一个或多个容器
docker stop “容器名称”    # 停止一个或多个运行的容器
docker images    # 列表docker镜像列表
docker info    # 显示系统的dokcer信息
docker ps    # 列表运行的容器
docker version    # 展示docker的版本信息
docker rm “CONTAINER ID”    # 删除指定的容器
docker rmi “CONTAINER ID”    # 删除指定的image
docker rmi -f “CONTAINER ID”    # 强制删除指定的image
docker pull “镜像名称”    # 获取docker镜像(从docker hub上获取)
docker push “images name:tag”    # 推送image到docker hub上(登录后才可以push)
docker diff “CONTAINER ID”    # 检查容器系统文件的改变
docker build    # 构建image(在提供Dockerfile的前提下)
docker login    # 登录docker注册中心(dockerhub)
docker logout    # 登出docker注册中心
docker export    # 根据容器id,导出指定压缩文件,(docker export 容器id > test.tar)
docker import    # 导入容器快照
    从本地文件导入:cat test.tar| docker import - test/demo:v0.1
    从远程文件导入:docker import http://xxx.xxx/domo.tar demo:v0.1
docker exec    # 运行镜像时执行command指令
    使用方法:docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
    domo: docker exec -i -t “CONTAINER ID” /bin/bash
    docker exec的参数:
        --help    # 打印使用方法
        -d(--detach)    # command后台运行
        -e(--env list)    # 设置环境变量
        -i(—interactive)    # 保持打开标准输出,在没有附加参数的情况
        -t(—tty)    # 分配一个伪终端(-t通常和-i一起使用) 
docker run “images name:tag”    # 在一个新容器中运行一个command
    使用方法:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
         demo : docker run -it “image name:tag” --name “指定一个名称” /bin/bash    # 运行image
    docker run 的参数:
        -p    # 将容器的端口映射到本地
        -i(—interactive)    # 保持打开标准输出,在没有附加参数的情况
        -t(—tty)    # 分配一个伪tty(-t通常和-i一起使用)
        --name        执行一个名称 
 
 
制作docker镜像有两个方法,一个是使用docker commit;另外一种是使用Dockerfile 
commit制作image的demo:
  1. 例如:要在imagedocker.xxx.me/xxx/onebox-dev:v0.)上做一个定制的jenkins image
  2. 、首先在制作一个docker镜像时需要获取一个基础image
  3. docker pull docker.xxx.me/xxx/onebox-dev:v0. # 获取镜像
  4.  
  5. 、启动images
  6. docker run -it name -p : jenkins docker.xxx.me/xxx/onebox-dev:v0. /bin/bash
  7.  
  8. 、在浏览器中打开jenkins,访问地址为:http://127.0.0.1:8080,然后根据自己需求配置jenkins,
  9. jenkins配置好后,查看容器的进程,根据容器id检查容器系统中变更的文件,最后提交文件变更,生成一个新的容器
  10. docker ps #查看docker容器进程
  11.  
  12. docker diff CONTAINER ID #查看容器系统中变更的文件(A:新增的文件;C:修改的文件;D:删除的文件)
  13.  
  14. docker commit -m “备注” 新容器名称:tag #commit时可以使用-m添加备注,要指定生成的容器的名字以及tag
  15. docker images #查看image列表,新生成的image会显示出来
Dockerfile制作image的demo:
首先介绍下Dockerfile的常用指令:
  1. COPY:复制文件指令;
  2. 格式:COPY <源路径(本地路径)> <目标路径(image中路径)>
  3. demoCOPY start.sh /root/start.sh
  4. ADD:ADDCOPY的性质和格式是一样的,ADD新增了一些功能,比如ADD会自动解压被复制的压缩文件,ADD的源路径可以是 urlADD会尝试去下载需要的资源;
  5. 格式:ADD <源路径(本地路径)> <目标路径(image中路径)>
  6. demoADD start.tar.gz /root/start.sh
  7. CMD:容器启动指令,用户可以容器运行时执行CMD命令来代替image中设置的指令;
  8. shell格式:CMD <shell 命令>
  9. exec格式:CMD [“可执行文件”,“参数一”,“参数二”。。。]
  10. ENTRYPOINTENTRYPOINTCMD命令一样,都是指定容器启动程序及参数,ENTRYPOINT也可以在容器运行时替换image内部的指令,需要—entrypoint来指定替换;当指定了ENTRYPOINT时,CMD将不再是可以指定的命令,只是做ENTRYPOINT的一个参数存在;如:ENTRYPOINT "<CMD>”
  11. 格式:ENTRYPOINT [“可执行文件”,“参数一”,“参数二”...]
  12. ENV:设置环境变量;可以在容器运行和构建过程中使用
  13. 格式:ENV <key> <value>
  14. ENV <key1>=<value1> <key2>=<value2>...
  15. ARG:构建参数,只能在image过程中使用
  16. 格式:ARG <参数名>[=<默认值>]
  17. EXPOSE:声明端口
  18. 格式:EXPOSE <端口号1> <端口号2>
  19. USER:指定当前用户
  20. 格式:USER <用户名>
  21. RUN:构建时运行指令
  22. 格式:RUN <指令1>&&<指令2>

 例如,现在需要在centos7-java:v1(本地已存在)镜像的基础上使用Dockerfile制作一个image,Dockerfile如下:

  1. FROM centos7-java:V1
  2.  
  3. ENV http_port=10001
  4.  
  5. # 创建data目录,赋予全部权限
  6. RUN mkdir -p /data/configserver && chmod -R 777 /data/configserver
  7.  
  8. # 复制编译好的包到镜像中
  9. COPY magina.tar.gz /data/configserver/magina.tar.gz
  10.  
  11. # 解压工程文件
  12. RUN cd /data/configserver && tar -zxvf magina.tar.gz
  13.  
  14. # 删除工程压缩包
  15. RUN rm -rf /data/configserver/magina.tar.gz
  16.  
  17. # 暴露服务端口号
  18. EXPOSE ${http_port}
  19.  
  20. ENTRYPOINT ["/data/configserver/start.sh"]
进入到Dockerfile文件的目录中,执行构建命令:
docker build -t image-name:tag .    # 会在终端中输出构建步骤
最后使用docker images指令查看是否有新生成的image 
  1. docker build -t image-name:tag . # 会在终端中输出构建步骤
  2. 最后使用docker images指令查看是否有新生成的image

  

 

docker创建image方法以及常用指令介绍的更多相关文章

  1. corosync+pacemaker的crmsh的常用指令介绍

    配置crmsh的yum仓库,此仓库的RPM包有openSUSE提供,将这个network:ha-clustering:Stable.repo文件直接下载到本地并且命名为crmsh.repo wget ...

  2. Docker学习(三): Dockerfile指令介绍

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...

  3. Git创建工作目录与常用指令

    1.创建工作目录与常用指令 工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文. 日常使用只要记住下图6个命令: 2.提交管理 ...

  4. 新人成长之入门Vue.js常用指令介绍(一)

    写在前面 作为一个刚步入职场工作的新人,对于公司中所用的技术和框架基本上不懂,只能从最基础的开始做起,进入公司接触的第一个框架就是前端框架Vue.js,几个功能做下来,觉得Vue.js首先学习起来真的 ...

  5. Docker 基础概念科普 和 常用操作介绍

    Docker 基础概念 Docker是什么?         Docker的思想来自于集装箱,集装箱解决了:在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了,集装箱和集装箱之 ...

  6. Nginx学习系列四默认负载均衡轮询及Ip_hash等常用指令介绍

    一.简介 Upstream模块是Nginx中一个核心模块,当客户端访问Nginx服务器的时候,Nginx会从服务器列表中选取压力小的服务器,然后分配给客户端进行访问.这个过程,Nginx通过轮询算法轮 ...

  7. docker基础——关于安装、常用指令以及镜像制作初体验

    为什么使用docker docker就是一个轻量级的虚拟机,他解决的是服务迁移部署的时候环境配置问题.比如常见的web服务依赖于jdk.Tomcat.数据库等工具,迁移项目就需要在新的机器重新配置这些 ...

  8. Emit学习(2) - IL - 常用指令介绍

    学习Emit必不可少的, 会使用到IL中间代码. 初见IL代码, 让我有一种汇编的感觉, 让我想起了, 大学时, 学习8051的汇编语言. 多的就不扯了, 直接进入正题, OpCodes指令集是不是有 ...

  9. Vue入门---安装及常用指令介绍

    1.安装 BootCDN----官网https://www.bootcdn.cn/ <script src="https://cdn.bootcss.com/vue/2.6.10/vu ...

随机推荐

  1. [翻译] VENCalculatorInputView

    VENCalculatorInputView https://github.com/venmo/VENCalculatorInputView VENCalculatorInputView is the ...

  2. 封装用于解析NSDate的便利的类

    封装用于解析NSDate的便利的类 此类可以从NSDate中解析出年份,月份,日期,时,分,秒,毫秒,足够用来做好多事情了,现提供源码如下: 以下是核心的类: TimeInfo.h 与 TimeInf ...

  3. Oracle创建Rman备份专用账户

    有时会因为信息安全需要,创建备份所需的专用账户,不适用sys等用户.可以使用如下方式:create user rman_ycr identified by oracle;grant create se ...

  4. 【原创】Apache ab测试时出现:apr_socket_recv "connection reset by peer" 104

    今天在用Apache自带的ab工具做以下简单的压测,本来是随便填几个参数,发现ab在1000并发以上报错:apr_socket_recv "connection reset by peer& ...

  5. 禁止 "启动时恢复任何注册的应用程序"

    在关闭计算机时 有些程序会进行注册 并在下次启动时恢复关闭前的状态(Restart Manager) 比如Chrome浏览器 应用程序实现这一功能可以调用RegisterApplicationRest ...

  6. ajax跨域调用webservice例子

    [WebMethod(Description = "这是一个描述")] public void GetTIM() { try { SqlDataAdapter da = new S ...

  7. Python之Bottle框架使用

    本文主要包含的内容是Bottle框架介绍和安装使用. 一.Bottle框架介绍 Bottle是一个快速小巧,轻量级的 WSGI 微型 web 框架.同时Bottle也是一个简单高效的遵循WSGI的微型 ...

  8. P1131 [ZJOI2007]时态同步

    题目描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3….进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点 ...

  9. CentOS6中OpenMP的运行时间或运行性能分析

    OpenMp作为单机多核心共享内存并行编程的开发工具,具有编码简洁等,容易上手等特点. 关于OpenMP的入门,博主饮水思源(见参考资料)有了深入浅出,循序渐进的分析.做并行开发,做性能分析是永远逃避 ...

  10. Hive HBase Integration 集成

    官方文档:https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration 1.在hive/lib目录下找到hive-hbase-ha ...