docker入门记录1
一. 什么是Docker
1.英文意思是集装箱,很形象。直白点就是将程序运行环境打包在一个箱子里,然后箱子扔到哪里,里边的程序都可以运行。这样以来一个显而易见的好处是:和以前的开发环境等相比,你不用每换一台电脑都重新配置一下环境,你需要做的只是把箱子搬过来就可以了,是不是方便了许多。
2.Docker经常被拿来和虚拟机比较,那么主要区别实际上也很明显了,如下:
虚拟机会虚拟整套运行环境,这里的运行环境包括硬件,用VM等软件创建虚拟机的时候会发现让你选择CPU核心数内存等,然后会选择操作系统,等你创建之后还要安装各种环境,然后才能去用。
Docker就很简单了,只包括运行环境,是不是感觉轻了很多?这种感觉是对的,因为这样一来Docker占用的资源就少了很多,一台服务器上所提供的服务就多了一些,所以最近Docker的应用越来越广泛。
下面是网上找到的一张对比图,从架构方面解释了两者的区别,图片来自于https://yeasy.gitbooks.io/docker_practice/content/introduction/what.html(我猜这也是从官网拿的):
二. 安装过程(Ubuntu,基本就是官方文档的简单翻译,详细见https://docs.docker.com/engine/installation/linux/ubuntulinux/)
1.Ubuntu也并不是每个版本都支持Docker,支持的有以下几个版本(所以想体验先看看系统满足么):
- Ubuntu Xenial 16.04 (LTS)
- Ubuntu Wily 15.10
- Ubuntu Trusty 14.04 (LTS)
- Ubuntu Precise 12.04 (LTS)
2.其他要求
系统版本必须是64位,同时内核必须在3.10以上,老版本会有问题,不推荐使用。检查内核版本可以使用 uname -r 命令。
3.升级apt的源
3.1 使用root用户或者sudo权限
3.2 更新apt源,安装CA证书,命令如下:
1 2 | $ sudo apt-get update $ sudo apt-get install apt-transport-https ca-certificates |
3.3 添加GPG密钥:
1 | $ sudo apt-key adv --keyserver hkp: //p80 .pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D |
3.4 打开(没有就创建) /etc/apt/sources.list.d/docker.list 文件,添加源,根据系统版本添加不同的源,然后保存:
-
On Ubuntu Precise 12.04 (LTS)
deb https://apt.dockerproject.org/repo ubuntu-precise main
-
On Ubuntu Trusty 14.04 (LTS)
deb https://apt.dockerproject.org/repo ubuntu-trusty main
-
Ubuntu Wily 15.10
deb https://apt.dockerproject.org/repo ubuntu-wily main
-
Ubuntu Xenial 16.04 (LTS)
deb https://apt.dockerproject.org/repo ubuntu-xenial main
3.5 更新apt,使用命令 sudo apt-get update
3.6 删除旧的repo 如果有,使用命令 sudo apt-get purge lxc-docker
3.7 确定Docker 的源正确 apt-cache policy docker-engine
3.8 16.04 15.10 14.04需要安装linux-image-extra-* 的包,使用一下命令:
1 2 | $ sudo apt-get update $ sudo apt-get install linux-image-extra-$( uname -r) linux-image-extra-virtual |
3.9 12.04需要特殊处理,过程如下:
1 2 3 | $ sudo apt-get update $ sudo apt-get install linux-image-generic-lts-trusty $ sudo reboot |
四. 安装Docker
1 2 3 4 | $ sudo apt-get update # Update your APT package index. $ sudo apt-get install docker-engine # Install Docker. $ sudo service docker start # Start the docker daemon. $ sudo docker run hello-world # 运行失败也没什么问题…可以直接pull一个镜像试一下 |
五. 常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $ sudo docker --help # 列出命令帮助,不知道了就可以过来看看 $ sudo docker pull ubuntu:12.04 # 获取镜像,相当于$ sudo docker pull registry.hub.docker.com/ubuntu:12.04,从注册的仓库获取此镜像 $ sudo docker pull dl.dockerpool.com:5000 /ubuntu :12.04 # 从指定仓库获取镜像 $ sudo docker images # 列出本地镜像 $ sudo docker run -t -i ubuntu:14.04 /bin/bash # 启动某个镜像 $ sudo docker run ubuntu:14.04 /bin/echo 'Hello world' # 启动容器,和上一条命令一样 $ docker start # 启动某容器,对应的终止是stop $ docker attach # 进入容器 |
更多的可以参加官网,或者推荐一本中文的gitbook,见链接:https://www.gitbook.com/book/yeasy/docker_practice/details
参考:
https://www.gitbook.com/book/yeasy/docker_practice/details
https://docs.docker.com/
https://www.zhihu.com/question/22969309 (应用场景的讨论)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· DeepSeek+PageAssist实现本地大模型联网
· 手把手教你更优雅的享受 DeepSeek
· 腾讯元宝接入 DeepSeek R1 模型,支持深度思考 + 联网搜索,好用不卡机!
· 从 14 秒到 1 秒:MySQL DDL 性能优化实战
· AI工具推荐:领先的开源 AI 代码助手——Continue