docker 入门到实战 1.初识 docker
什么是docker
你到市场上买了一堆菜和肉:咸鱼,鸡蛋,青菜,萝卜,熟食,水果等。这些菜都要装在一个冰箱里,不同的菜保质期不一样,味道也不一样,如果你将咸鱼和水果放在一起,水果就成了黑暗料理了。如果将鸡蛋随便丢,那很可能只要一开冰箱找食材,就会碰碎几个鸡蛋。聪明如你,肯定会将这些食材分门别类用不同的容器隔离存放。让一切都井然有序。
类似的,如果我们想在一台电脑上搭建各种开发环境:lnmp环境,java环境,nodejs,redis集群,python开发环境。显然,这些多的开发环境,如果集中在一台机器上构建,会让系统显得复杂,可能还会出现各种版本或依赖之间的不兼容。如果能将这些开发环境都独立开来,各个环境互相独立隔离,但又能互相通讯交互,相当于每个环境都是一个容器,这些容器可以独立提供服务,也能通信交互。
docker就是这样的容器技术。
用官方术语描述docker: Docker是基于Go语言实现的开源容器项目,有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。
通俗地理解:docker能让你在一台物理机上构建出很多个轻量极的开发环境。
为什么要用docker
传统的虚拟机也能实现环境的隔离,但虚拟机过于笨重,启动也慢,消耗的资源多。如果一台普通的个人电脑同时运行5个虚拟机实例,估计内存和CPU就扛不住了。
而docker不一样,docker很轻量级,对系统资源的需求很少。
-
docker容器的启动和停止可以在秒级实现,个人普通电脑同时运行上百个docker容器也没问题(在IBM服务器上可以同时实现运行10k量级的容器实例)
-
docker通过类似Git设计理念的操作来方便用户获取、分发和更新应用镜像。用户可以很方便地获取全球开发者共享的镜像
-
通过Dockfile支持灵活的自动化创建和部署机器,使流程标准化,很方便移植
如何安装docker
官方文档 有详细的安装说明,本文以 macos 和 centos7 为例进行演示
macos
macos 和 windows 都有相应的桌面版安装包,下载后即可一键安装
centos
详细操作:
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce -y
$ sudo systemctl start docker # 启动docker
更换docker安装源
默认的docker安装源很慢,建议换成国内源,以阿里云的源为例:
需要先注册阿里云账号
macos
centos
$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["你的镜像地址"]
}
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
第一个docker镜像
查看版本信息
$ docker --version
Docker version 19.03.1, build 74b1e89
按照惯例,第一个程序以 hello world 开始,执行以下命令即可执行一个输出 hello world 的容器
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:451ce787d12369c5df2a32c85e5a03d52cbcef6eb3586dd03075f3034f10adcd
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
以上指令表示你从docker镜像拉到了一个名为'hello world'镜像并执行成功。到此表示你的docker已经安装成功且正常执行
关于什么是docker的镜像,请关注我的后续更新
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: