很久很久以前,第一次听说docker时,感觉很高大上,同时自我感觉会很难。所以一直没有详细了解。前一段时间偶尔看到关于docker的详细介绍,于是乎来了兴趣。自已折腾了一下,发现不是想象中的那么难。

最近闲来无事,想之前安装的步骤总结一下,以免忘记。(好记性不如烂笔头)

Docker和传统虚拟化技术的对比

相比传统虚拟机技术,Docker资源占用少,启动更快,很大的方便了项目的部署和运维。
Docker是在操作系统层面上实现虚拟化,复用本地主机的操作系统,传统方式是在硬件的基础上,虚拟出多个操作系统,然后在系统上部署相关的应用。

下面的这张图片参考相关博文,很形象的说明了Docker和VM之类的传统虚拟化技术的区别:

 vs

一、安装docker

root@base0298:~# yum install docker

二、启动docket

root@base0298:~# systemctl start docker
root@base0298:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since 五 -- :: CST; 2s ago
Docs: http://docs.docker.com
Main PID: (docker)
CGroup: /system.slice/docker.service
└─ /usr/bin/docker daemon --selinux-enabled

三、基本信息查看

docker version:查看docker的版本号,包括客户端、服务端、依赖的Go等

docker version
docker info

四、搜索镜像并下载镜像
  docker search <image>:在docker index中搜索image

root@base0298:~# docker search centos
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/centos The official build of CentOS. [OK]
docker.io docker.io/ansible/centos7-ansible Ansible on Centos7 [OK]
docker.io docker.io/jdeathe/centos-ssh CentOS- 6.9 x86_64 / CentOS- 7.4. x8... [OK]
docker.io docker.io/tutum/centos Simple CentOS docker image with SSH access
docker.io docker.io/imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 [OK]
docker.io docker.io/gluster/gluster-centos Official GlusterFS Image [ CentOS- + Glu... [OK]
docker.io docker.io/kinogmt/centos-ssh CentOS with SSH [OK]

docker pull <image> :从docker registry server 中下拉image

root@base0298:~# docker pull docker.io/centos
Using default tag: latest
Trying to pull repository docker.io/library/centos ... latest: Pulling from library/centos
99d067612410: Pull complete
fb2a47779ef8: Pull complete
358bf47a7a64: Pull complete
Digest: sha256:7192ec204ee4b953a9c9212ebd78575a334d041333d8f58387aa648f72a7fd8a
Status: Downloaded newer image for docker.io/centos:latest

五、查看镜像

docker images: 列出images

docker images -a :列出所有的images(包含历史)

docker images --tree :显示镜像的所有层(layer)

docker rmi  <image ID>: 删除一个或多个image

root@base0298:~# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker.io/centos latest 358bf47a7a64 days ago 203.5 MB

六、启动容器并修改镜像

镜像下载到本地以后,就可以使用Docker运行,
通过下面的命令参数启动容器

docker run <相关参数> <镜像 ID> <初始命令>

-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,
格式:-v <宿主机目录>:<容器目录>

我的相关程序都在当宿主机的/app/tools目录下,并且想把它挂载到容器的相同目录下:


root@base0298:~# docker run docker.io/centos /bin/echo hello
hello
交互模式:
root@base0298:/app/tools# docker run -itv /app/tools:/app/tools 358bf47a7a64 /bin/bash # ‘358bf47a7a64’是IMAGE ID 也可以直接使用镜像的名字:docker.io/centos
[root@3b8c6a292396 /]# ls /app/tools/ 也可以使用镜像‘仓库名’
root@base0298:/app/tools# docker run -itv /app/tools:/app/tools docker.io/centos /bin/bash
[root@3b8c6a292396 /]# ls /app/tools/
mongodb-linux-x86_64-3.0.6.tgz   pgadmin3-1.16.1.zip       php5.6.tar.gz
astrill-setup-linux64-new.rpm   mtree-1.0.3.tar.gz             pgadmin3.msi

然后就可以和宿主机一样的操作了。

  七、查看容器

docker ps :列出当前所有正在运行的container
    docker ps -l :列出最近一次启动的container
    docker ps -a :列出所有的container(包含历史,即运行过的container)
    docker ps -q :列出最近一次运行的container ID

和docket的第一次亲密接触的更多相关文章

  1. 第四章 跨平台图像显示库——SDL 第一节 与SDL第一次亲密接触

    http://blog.csdn.net/visioncat/article/details/1596576 GCC for Win32 开发环境介绍(5) 第四章 跨平台图像显示库——SDL 第一节 ...

  2. 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别

    本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beg ...

  3. 【阿里云产品公测】与云引擎ACE第一次亲密接触

    阿里云用户:林哥神话 公测当然是第一次了.这个第一次亲密接触,但话又说回来对ACE我一直都不是那感兴趣的,但是看到阿里介绍还是那般神奇,再加上200无代金券来更加给力.最后就申请了这次公测. 平时一直 ...

  4. Linux就是这个范儿之第一次亲密接触(3)

    原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明.否则将追究法律责 1.4 返璞归真的命令行 有一种说法,现代计算机不是靠电力驱动,而是靠“鼠标”.多少应用程序的界面需 ...

  5. 我和Python的第一次亲密接触 - 零基础入门学习Python001

    我和Python的第一次亲密接触 让编程改变世界 Change the world by program 小甲鱼经常说,学习一门编程语言就是要深入其中,要把编程语言想象为你的女朋友你的情人,这样你学习 ...

  6. 第一次亲密接触MSF

    第一次亲密接触MSF Metasploit Framework介绍 Metasploit是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新.被安全社区冠以“可以黑掉整个宇宙”之名的强 ...

  7. [OS] 多线程--第一次亲密接触CreateThread与_beginthreadex本质区别

    转自:http://blog.csdn.net/morewindows/article/details/7421759 本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_be ...

  8. Linux认知之旅【01 与Linux第一次亲密接触】!

    一.搜索LINUX,了解它的前世今生! linux很厉害,应用在很多方面,我知道有超算.IOT.树莓派. 而且好多开发人员都在用这个系统.linux作为服务器使用,常年不用重启,不宕机,很少受病毒影响 ...

  9. Linux就是这个范儿之第一次亲密接触(2)

    原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明.否则将追究法律责 1.2 不一样的图形操作 几乎所有Linux的新用户都会认为Linux的图形界面是相当的绚丽又多彩. ...

随机推荐

  1. 【转】MFC内嵌cef3浏览器内核

    一.cef3内核的下载 可以从http://opensource.spotify.com/cefbuilds/index.html下载,注意:很多版本编译都可以通过 但是运行的时候会崩溃,以cef_b ...

  2. Caused by: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

    错误信息如下: Caused by: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java ...

  3. Luogu P4169 [Violet]天使玩偶/SJY摆棋子

    传送门 二维平面修改+查询,cdq分治可以解决. 求关于某个点曼哈顿距离(x,y坐标)最近的点——dis(A,B) = |Ax-Bx|+|Ay-By| 但是如何去掉绝对值呢? 查看题解发现假设所有的点 ...

  4. python之函数、参数、作用域、递归

    函数的定义 函数也就是带名字的代码块.使用关键字def来定义,指出函数名及参数,以冒号结尾. def fibs(num): result =[0,1] for i in range(num-2): r ...

  5. FineUIPro v3.5.0发布了,减少 90% 的上行数据量,15行代码全搞定!

    一切为客户着想 一切的一切还得从和一位台湾客户的沟通说起: 客户提到将ViewState保存在服务器端以减少上行数据量,从而加快页面的回发速度. 但是在FineUI中,控件状态都保存在FState中, ...

  6. developer的996,需要谁来拯救

    不为996辩护,但向奋斗者致敬! 随着996.icu愈演愈烈,不仅是国际友人发文问候,连国内互联网的大佬都被卷进风波,整理下大致思路如下: 马云:因为有自己想要实现的目标,因为有奔头,所以我们努力工作 ...

  7. functools下的partial模块应用

    问题 你有一个被其他python代码使用的callable对象,可能是一个回调函数或者是一个处理器, 但是它的参数太多了,导致调用时出错. 解决方案 如果需要减少某个函数的参数个数,你可以使用 fun ...

  8. Latex(表格|图片(一丢丢))

    目录 普通的例子 Notation 例子 p{width} 列分割符 @{} \multicolumn supertabular | longtabular 浮动体 table 浮动体 图片 \use ...

  9. 2017软工实践K班总结

    回首一学期的软工实践,从暑假开始陆续布置作业,经历个人.结对与团队等大小作业.也经历了不少同学被吓跑.第一周就退选的情况,能坚持下来的都是胜利者,至少你们有一颗愿意挑战的心.首先感谢助教谢涛付出的巨大 ...

  10. SQLSERVER事务日志已满 the transaction log for database 'xx' is full

    解决办法:清除日志 USE [master] GO ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE D ...