Docker 是一个开源的应用容器引擎,基于Go语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

# docker常用命令

# 获取镜像:docker pull image_name

# (创建容器)运行镜像:docker run -it image_name /bin/bash

# (创建容器)运行镜像(挂载本地目录test到容器内的/root/test):docker run -it -v /test:/root/test image_name /bin/bash

# 删除镜像:docker image rm image_id

# 进入容器:docker exec -it container_id /bin/bash

# 删除容器 docker rmi container_id/image_id

# 清理docker残余临时文件:docker image prune

# 查看正在运行的docker进程:docker ps

# 查看所有的docker进程:docker ps -a

# 根据标签删除镜像:docker image rm image_name:v1 或者:docker rmi image_name:v

# 根据ID删除镜像: docker image rm image_id  或者:docker rmi image_id

# 根据容器id启动容器:docker start container_id

# 停止容器:docker stop container_id

# 将容器导出为tar文件:docker export -o output_file_name.tar container_id

# 将压缩包中的镜像文件导入镜像库中并重命名,及版本标签:docker import output_file_name.tar new_image_name:v1.0

# 另存镜像并重命名:docker tag new_image_name:v1.0 my_image_name:v2.0

# 将镜像push到局域网的镜像库中:docker push my_image_name:v2.0

# 退出容器并停止:Ctrl+D

# 退出容器,保持容器运行:Ctrl+P+Q

# 将容器保存为镜像:docker commit -a 'autho_name' -m 'image description' container_id image_name:v1.0

# 利用dockerfile构建镜像: docker build --rm --tag docker_name:v1.0 -f /path/Dockerfile .

# 清理删除已经退出的容器:docker container rm $(docker ps -a |grep Exited |awk '{print $1}')

# 本机正在运行的容器:docker container ls

# 删除容器:docker rm -f container_id

# 容器时间和宿主机的时间进行同步

docker run -it -v /etc/localtime:/etc/localtime:ro --restart=always --net=host image_name:version /bin/bash

利用Dockerfile制作Docker镜像

示例

##Dockerfile

FROM base_image_name

COPY etcfile /etcfile

COPY Miniconda3-4.3.31-Linux-x86_64.sh /opt

ENV PATH /opt/miniconda/bin:$PATH

RUN /bin/bash /opt/Miniconda3-4.3.31-Linux-x86_64.sh -b -p /opt/miniconda \

&& echo $PATH && rm -f /opt/Miniconda3-4.3.31-Linux-x86_64.sh \

&& cp /etcfile/sources.list /etc/apt/ && rm -rf /etc/apt/sources.d/* \

&& apt-get update

RUN apt-get -y install gcc g++ nano python-dev libsasl2-dev sasl2-bin \

libsasl2-2 libsasl2-dev libsasl2-modules libsasl2-modules-gssapi-mit  krb5-user libkrb5-dev \

&& cp /etcfile/krb5.conf /etc/ \

&& mkdir ~/.pip && cp /etcfile/pip.conf ~/.pip/ \

&& pip install pyhive thrift thrift-sasl hdfs[kerberos]

写好Dockerfile以后执行docker build命令进行镜像的制作,等待几分钟便可以打好镜像,

docker build --rm --tag image_name:v1.0 -f /path/Dockerfile .

程序员实用工作技能之Docker相关推荐

  1. Java程序员-日常工作技能清单

    区别于找工作时的各种八股文整理,自己整理了一些工作半年来觉得一个Java后端程序员在实际工作中需要用到的技能,希望能给刚刚要工作的Java程序员们一点帮助吧. 1.计算机基础 Linux命令:cat. ...

  2. 计算机本科毕业后还需要参加培训吗?我来聊聊java程序员找工作的经验

    很多人在学习完计算机专业后,会发现在找到满意的工作时,还需要参加培训班并花费大量的时间和金钱,这让他们倍感不解.为什么在学习了四年的计算机专业之后,还需要参加培训班呢?难道这四年的时间和精力白费了吗? ...

  3. 14 | 大师级程序员的工作秘笈

    前面我和大家分享了 TDD 的来龙去脉,那些尚未将 TDD 烂熟于胸的同学会分为两个派别.一派是摩拳擦掌,准备动手实践一番:另一派是早就自我修炼过,但实践之路不通.所以,市面上经常会听到有人说,TDD ...

  4. 好文转载—程序员在工作中会追求什么?

    1. 做软件产品.我希望我参与编写的程序成为公司的主要业务.这就排除了 IT 维护工作,因为这种工作只是间接地支持了真正的业务(不管它是什么).我也希望参与系统核心部分的工作,越重要的越好.如果我做的 ...

  5. 程序员实用小程序_我从阅读《实用程序员》中学到了什么

    程序员实用小程序 In short: old but gold. 简而言之:古老而又黄金. Published in 1999, The Pragmatic Programmer is a book ...

  6. 程序员简历工作模式_简历的完整形式是什么?

    程序员简历工作模式 简历:简历 (CV: Curriculum Vitae) The CV is an abbreviation of Curriculum Vitae. It is a writte ...

  7. Java程序员如何提升技能

    Java语言是大学计算机专业中常见的一门编程专业课,自己作为一名程序员,工作还在继续使用,发现大学中学的过于浅显,越来越觉得技能不够用,还需要继续深入学习. Java基本上是目前应用最广,能力最强大的 ...

  8. “不会SQL,干啥都不行!”资深研发:这是程序员的必备技能!

    国外有人曾做过调查显示:"SQL的使用人数仅次于JavaScript". 更有统计,世界上一流的互联网公司中,排名前 20 的有 80% 都是 MySQL 的忠实用户. 你一定很好 ...

  9. 程序员找工作遇到的“了解、熟悉、精通”的三种技能要求实际上是这样的标准!

    本篇文章主要讲解:程序员找工作遇到的"了解.熟悉.精通"的三种技能要求的标准说明. 日期:2021-7-19 作者:任聪聪 编程语言以及技能的了解.熟悉.精通的概念标准: 一.编程 ...

最新文章

  1. Java调用jar包测试
  2. 【mysql】[error]group_concat造成的sql语法错误
  3. 【Java线程】Thread Runnable必知必会
  4. Java面向对象设计原则
  5. python抓取网站乱码_如何使用Python抓取网站
  6. JS 日期转化及日期比较
  7. php.ini 开启zend,php之ZendFramewor篇(1)application.ini配置说明
  8. Matlab Tricks(九)—— 矩阵行/列的增广(删除)
  9. RIPv1配置(Enabling Rip)
  10. php探针不显示ip,php探针代码_PHP探针获取客户端信息
  11. 贪心算法之哈夫曼编码问题
  12. win7计算器左移、右移操作
  13. 影响力最大化算法——degreediscount以及python实现代码
  14. 无法在此iPhone上激活Touch ID,怎么解决?
  15. SwiftUI中sheet弹出嵌在NavigationView中的子视图无法用presentationMode关闭(dismiss)弹出视图的解决
  16. C语言之strncpy函数
  17. 第十七届全国大学生智能车竞赛线上比赛直播链接
  18. NCX SQL编程规范
  19. Command 模式——读书笔记
  20. python3 turtle画正方形、矩形、正方体、五角星、奥运五环

热门文章

  1. Centos7创建DNS服务器(超级简单,一看就会)
  2. JPEG文件格式介绍
  3. 华为云数据库mysql云灾备方案_华为云MySQL云灾备解决方案,为企业数据提供全方位的异地保护...
  4. 台式计算机屏幕扩展,电脑扩展显示器调整的方法
  5. R语言二项分布(The Binomial Distribution)
  6. 伯努利分布(二项分布)的假设检验
  7. DEVC++的几个实用小技巧
  8. n个元素进栈,有几种出栈方式
  9. Phonics 自然拼读法 ou ow oi oy au aw oo oo ea Teacher:Lamb
  10. 【java】统计正数和负数的个数然后计算这些数的平均值