docker ubuntu安装python_docker入门教程?新手如何学docker以及docker的一些相关实例和实战操作

本文指导初学者通过实例理解Docker,包括其与虚拟机的相似点(快速启动、镜像轻量化)、安装步骤、基本操作(启动容器、镜像管理)和核心特性(小体积、资源隔离)。学习如何创建、保存镜像及提交到Docker Hub。
摘要由CSDN通过智能技术生成

28fc0f9b1bd53a6286951c8edeb89acc.png

转自:https://zhuanlan.zhihu.com/p/22259092

初学者应该如何理解docker?初学时,我对docker的感受是这样的:docker就像是虚拟机技术的升级版,虽然之后来看,这个看法有失偏颇,但仍然可以作为一个初学者理解的好切入点。当然从官方的角度来说,docker是一种“容器”,但是和初学者解释容器的概念,显然比较突兀。

让我们来看看docker有哪些和虚拟机类似的概念:

  1. docker可以启动一个centos或ubuntu或某个linux发行版的镜像,并提供一个bash入口,区别是docker启动的速度更快
  2. docker可以启动一个nginx或mysql或web类应用的镜像,此镜像中包含有操作系统(比如ubuntu11.04精确至版本号),依赖lib版本(比如gcc等),以及使用的app如何安装,简单来说,就是得到一个“纯净”的,只有你需要的app的镜像,同样的,docker启动的速度还是一如既往的比虚拟化技术快
  3. docker做到了文件系统,内存,cpu等硬件资源看起来和宿主系统的隔离

从这几点来说,似乎虚拟机可以做到的docker都可以做到,而且docker速度更快,镜像占用空间更少,这些特性在带来好奇的同时也给了很多初学者疑问---docker是如何做到的

1 如何安装Docker,避免因为防火墙打击学习积极性

  • 首先,从官方的 docker.com/products/doc 下载安装,当然也可以选择:brew安装docker 或是下载源码包自行编译,不过对于一个初学者来说,一种简单的安装模式,比较不容易打击积极性。 tips:下载安装docker时,如果因为众所周知的原因导致速度够慢,可以使用迅雷离线下载。
  • 第二步,就是验证安装的成果了,在terminal中使用命令:docker run -ti ubuntu:latest /bin/bashdocker run 是docker运行镜像的起头-ti 表示运行在交互模式,一般这个模式就是可以起动bash,然后和容器有命令行的交互ubuntu:lastest 中的ubuntu表示镜像名字,镜像由docker官方或个人提供/bin/bash 表示在docker容器中执行的命令
当然对于大部分墙内的玩家可能一时半会会得不到结果,卡在网络获取镜像上,这里可以使用国内一些云服务公司的代理镜像,我个人采用了daocloud 的镜像,该镜像配置需要先注册一个daocloud的账号,链接:加速器 DaoCloud ,注意,配置了加速器没有办法通过日志等方式来验证,只能通过看镜像下载速度是否有显著提升来确定,作为参考,我这里的下载速度大约提升到1MB- 3MB每秒。
  • 接下来可以巡视一下ubuntu的文件结构,首先默认用户为root,文件系统和mac系统截然不同,基本上是一个非常纯净的ubuntu系统。
  • 接下来在容器中做出一些修改,比如跑一个命令,安装python:apt-get updateapt-get install python
就这样,完成了python在docker启动的ubuntu容器内的安装。

2 进一步来学习一些docker启动的一些容器特性

  • 接下来,实验一些docker的特性,先退出刚启动的ubuntu bash,再回到mac的terminal,运行命令:docker images
此时,会显示出刚刚创建的容器列表:Macintoshsong-2:~ song$ docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
ubuntu                 latest              bd3d4369aebc        9 days ago          126.6 MB

非常吃惊的是size无比小,大小才126.6MB,至于为何如此小,这是docker的核心竞争力之一,之后会仔细深入探讨。
  • 如何再次进入刚才的容器,如果使用刚才的命令,docker会报错,是因为该镜像在本地已经创建,所以接下来要进入该镜像需要使用以下命令:docker run -ti bd3d4369aebc /bin/bash其中bd3d4369aebc为image的id,在上面一条命令中得到
  • 在再次进入bash后,执行命令python,会发现python木有了,刚才安装的python再次丢了,所以在镜像内执行的全部操作,在退出或杀死镜像后,不会直接在镜像中保存。为了保存容器中更改内容,可以采用Macintoshsong-2:myworks song$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES254c67dc4bbe bd3d4369aebc "/bin/bash" 9 minutes ago Up 9 minutes nostalgic_poincare获取到container id(注意,container id和image id是不同的)接着使用命令:Macintoshsong-2:myworks song$ docker commit -m "Added json gem" -a "Kate Smith" 254c67dc4bbe example/new_ubuntu:v2获取一个新的docker镜像,在该镜像中,会有一个默认安装好的python(或任何你在原有ubuntu镜像中所作出的修改)
  • how to learn more :
    • 了解什么是docker hub : Build your own images
    • push 一个自己制作的image到公有hub:Build your own images
    • 了解至少一个国内的hub服务,比如阿里云:Docker 镜像服务

3 本篇总结

  • 初学者如何理解docker,我建议先不要急着了解原理或容器概念,对于用户来说,先看如何使用,一些好的特性,可以先记录,再做原理探讨
  • 初学者如何安装docker,以及如何启动一个交互式的ubuntu docker容器
  • docker的特性,如image比传统虚拟化技术小,以及如何保存一个更改后的image(保存在本地)
  • 容器内的更改如何保存,如何创建自己的容器并递交到公有的docker hub

顺便推荐一下,我们家的平台,谢谢关注。平时能用的到的,可以省钱~

abcf88a461945b5a8f8c2b4c19e33350.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值