docker入门之初体验
1. 什么是docker?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
- DockerClient客户端
- Docker Daemon守护进程
- Docker Image镜像
- DockerContainer容器
2.Docker与虚拟机的区别?
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
- 传统虚拟机, 虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机的内部,容器是没有自己的内核的,也没有虚拟硬件,所以轻便
- 每个容器间是相互隔离的,每个容器内都有一个属于自己的文件系统,互不影响
=> docker比虚拟机更快更强!
3.初探 docker run
镜像、容器、仓库:
- 镜像(image):Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,nginx镜像 => run => nginx容器, 通过这个镜像可以创建多个容器(可以理解为类与对象)
- 容器(container):Docker利用容器技术, 通过镜像来创建一个或多个容器(独立运行的“盒子”,可以理解为一个linux系统)
- 仓库(repository):存放镜像的地方(Docker Hub)
hello-world
docker run hello-world
牛逼的docker就跑起来了。从上面可以得到一些信息:
Unable to find image ‘hello-world:latest’ locally //本地未找到镜像
latest: Pulling from library/hello-world //从dockerhub拉去镜像
2db29710123e: Pull complete
Digest: sha256:53f1bbee2f52c39e41682ee1d388285290c5c8a76cc92b42687eecf38e0af3f0
Status: Downloaded newer image for hello-world:latest
4.再探docker run
docker run –name my_nginx -v /usr/local/nginx/conf:/home/www/ -d -p 8080:80 –network my-net nginx
–name my_nginx : 容器名为 my_nginx
-v /usr/local/nginx/conf:/home/www/ :数据卷volume(文件挂载),把本地的 /usr/local/nginx/conf 挂载到容器里的 /home/www 目录
-p 8080:80:端口映射,把容器的80端口映射到本地的8080端口
–network my-net :使用容器网络my-net作为通信网络
最后一个 nginx 是使用的镜像名
从一个这两个 docker run 命令,就了解了docker的基础
3个基础:镜像、容器、仓库;
4大模块:镜像、容器、数据卷、网络;
PS:docker 数据卷(如:数据同步)和docker网络(如:容器间通信)是十分强大的。
5.docker带来了什么?
开发一个网站,A组使用了php、mysql、redis、es、B组使用java、oracle,C组使用了python、node、neo4j等技术栈。现在让你搭建一个beta环境和pre环境,你是运维是不是头都大了?
如果大家都是基于docker环境来开发,那么A的环境是一个docker,B、C的环境也是一个docker。是不是只需要3个 docker run 就ok了。。。不仅大大节省了时间,还保证了环境的绝对一致,无论对开发还是运维都是福利。
补充:windows下的docker安装
windows下通常会踩不少坑,记录一下大概步骤:
1.检查虚拟化是否开启,任务管理器->性能-CPU, 控制与功能->关闭或开启windows->hyper-V。(可能会修改BIOS,一般是在cpu或gpu相关项的VT[Virtualization Technology],设置为enable或on)
2.windows安装WSL且更新(learn.microsoft.com/zh-cn/windows/...)
wsl --set-default-version 2
安装linux的子系统
3.官网下载安装docker,检查调试docker、docker-compose命令,设置docker国内镜像源
更多参考:docs.docker.com/desktop/install/wi...
ps:docker常用命令
本作品采用《CC 协议》,转载必须注明作者和本文链接