docker 和 vm 虚拟机技术比较像,但又有一些区别。

vm 像真机一样有 BIOS ,有硬盘,有网卡,声卡,可以安装操作系统, win7 win10 macOS ubuntu centOS,有好用方便的快照功能,隔离性较强,vm 蹦溃不影响宿主,软件发布时间长,支持众多宿主操作系统,XP WIN7 centOS 6。

vm 缺点也是上面的问题,需要自行安装 操作系统,软件,启动慢,大概需要1分钟,高配电脑,也需要有半分钟。

docker 可以很方便的拉取 image 运行,省去了自行安装操作系统和软件的过程。还可以很方便的进行配置或删除。随便安装ubuntu 14 16 18 仅需要下载 image 就行了。启动快速,秒开。

docker 缺点是不支持 windows mac OS 这种非 linux 的操作系统,软件这几年刚有,仅支持 CentOS 6.8 7 或更高版本,kernel 要求 3.1 以上,仅支持 win10,还是用虚拟机实现。

基本使用

1, 先去 https://www.docker.com/ 注册一个帐户 因为有的 image 需要登录用户才能拉取

2, 安装 docker 在 ubuntu 18

sudo apt-get install docker.io
sudo docker info

3, 添加 docker 用户,这样以后就不必每次都打 sudo

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用

4,启用systemctl

sudo systemctl enable docker
sudo systemctl start docker

5, 拉取 nginx 并运行

docker pull nginx
docker run --name "nginx" -p : -d nginx

#传入 html 路径 交互模式 退出自动删除容器
  docker run --rm -it -p 8000:80 -v $PWD/html:/usr/share/nginx/html nginx

6, 修改docker 保存的位置, 用软链比较简单。

sudo mv /var/lib/docker /opt/data/
sudo ln -s /opt/data/docker/ /var/lib/docker

7, 其它的命令

搜索 image
docker search nginx

查看容器运行状态
docker ps -a

查看所有镜像
sudo docker images

仅显示容器ID
sudo docker ps -aq

停止所有容器
sudo docker stop $(sudo docker ps -aq)

删除所有容器
sudo docker rm $(sudo docker ps -aq)

进入容器
sudo docker exec -it f66627b76918 /bin/bash

复制容器配置文件
docker cp f66627b76918:/etc/nginx/ .

run 详细参数
https://docs.docker.com/engine/reference/commandline/run/#options
--detach , -d Run container in background and print container ID
--rm Automatically remove the container when it exits
--interactive , -i Keep STDIN open even if not attached
--tty , -t Allocate a pseudo-TTY

如何打包制作镜像 image 

Dockerfile

ENV PORT 8000 #设置变量,可以通过 -e 指定
RUN apt-get update && apt-get install -y ssh && rm -rf /var/lib/apt/lists/* # 执行普通的命令

RUN sed -i 's/# StrictHostKeyChecking ask/StrictHostKeyChecking no/' /etc/ssh/ssh_config #通过 sed 流文本编译器来修改文件,经常使用
COPY run.sh /run.sh #复制文件到镜像中 另一个常用的是 ADD 可以从网络读取下载到镜像
EXPOSE 80 #声明发布的端口 这里是 web 的 80
CMD ["/run.sh"] #自动启动时执行的自定义命令  -d 的时候

开始构建
docker build -t ubuntu-nginx .

docker 技术全面整理的更多相关文章

  1. .NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  2. 利用Docker技术实现UDP广播效果(网络编程python版)

    docker的安装见官方文档 我使用的系统为Ubuntu16.04 Ubuntu系统安装docker文档地址:https://docs.docker.com/engine/installation/l ...

  3. Docker - 技术栈

    与传统的方式类似,构建及运行Docker容器与在一台虚拟机上构建和运行程序的方式是相似的,只是使用了一套新的工具以及技术. 与虚拟机不同的是,Docker容器将宿主机与应用程序或者服务隔离,从而提高了 ...

  4. 赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】

    最近对docker这个比较感兴趣,找一个比较完整的书籍看看,在z.cn上找到了电子书,jd dangdang看来要加油啊 Docker技术入门与实战 [Kindle电子书] ~ 杨保华 戴王剑 曹亚仑 ...

  5. 转载:.NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  6. Docker技术学习

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1598249 貌似Doc ...

  7. Docker技术浅谈:私有化部署的优势以及在顶象内部的应用实践

    顶象全景式业务安全风控体系基于新一代风控体系构建,并采用Docker技术进行私有云和公有云部署.本文主要和大家分享下Docker容器技术和顶象风控系统私有化部署的优势以及Docker容器技术在顶象内部 ...

  8. Docker技术知识点总结

    Docker技术知识点总结 本文宿主机环境Centos7.4Docker version 18.09.2, build 6247962采用国内 Daocloud 加速器---------------- ...

  9. Docker技术应用场景(转载)

    场景一:节省项目环境部署时间 1.单项目打包 每次部署项目到测试.生产等环境,都要部署一大堆依赖的软件.工具,而且部署期间出现问题几率很大,不经意就花费了很长时间. Docker主要理念就是环境打包部 ...

随机推荐

  1. maven项目部署到tomcat中没有classe文件的问题汇总

    1.修改生成的class文件的位置

  2. python语法基础-函数-内置函数和匿名函数-长期维护

    ##################     内置函数        #######################  """ 一共是 68个内置函数: 反射相关的内置函 ...

  3. deeplearning.ai 神经网络和深度学习 week3 浅层神经网络

    1. 第i层网络 Z[i] = W[i]A[i-1] + B[i],A[i] = f[i](Z[i]). 其中, W[i]形状是n[i]*n[i-1],n[i]是第i层神经元的数量: A[i-1]是第 ...

  4. 深入JVM内核--常用JVM配置参数

    Trace跟踪参数 -verbose:gc -XX:+printGC 可以打印GC的简要信息 [GC 4790K->374K(15872K), 0.0001606 secs] [GC 4790K ...

  5. 洛谷-P3809-后缀排序(后缀数组)

    看了求后缀数组的倍增法之后很快就理解了,但是自己写的倍增法用map排序还是超时了.然后看了两天别人写的模板,题目是通过了,但感觉代码还是半懂半背的.以后多熟悉熟悉吧: 后缀数组 #include &q ...

  6. 微信小游戏广告位iphonex底部适配问题

    最近在公司开发游戏,使用cocos creator做微信小游戏,遇到一个很恶心的问题,如图: 如图所示,微信的广告位被iphonex的底部bar给弹出了一点位置,没有靠在底部. 在这里不得不吐槽一下微 ...

  7. Mybatis-Generator相关配置demo

    generatorConfig.xml配置信息 首先在resource中配置好datasource.propertise文件,包括数据库信息和mysql-connector的jar包位置. <? ...

  8. 双股同时上市!小米IPO是想要玩场大的?

    ​近日,据相关媒体报道,有相关人士称小米IPO最终可能敲定A+H股两地发行.但目前还未得到小米官方证实.此前关于小米要上市的消息已经流传已久了,从雷军刚开始的矢口否认到后来的默认,再到后来相关消息愈来 ...

  9. 《软件自动化测试开发-Java和Python测试开发实用指南》出版了

    1.关于书中下载链接的问题:出现404,页面不存在 解答:大小写要区分,l和1不能弄错了 2.关于勘误,出现极个别漏子少字错字 解答:后续版本会改进,目前能理解就好了 ---------------- ...

  10. 国内游戏直播火热 为何YY游戏直播却巨亏

    为何YY游戏直播却巨亏" title="国内游戏直播火热 为何YY游戏直播却巨亏"> 伴随"千万年薪主播"."美女主播陪玩那些事儿&q ...