docker入门之初体验

1. 什么是docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器

2.Docker与虚拟机的区别?

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

  • 传统虚拟机, 虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
  • 容器内的应用直接运行在宿主机的内部,容器是没有自己的内核的,也没有虚拟硬件,所以轻便
  • 每个容器间是相互隔离的,每个容器内都有一个属于自己的文件系统,互不影响

docker基础入门: Docker 初体验

=> docker比虚拟机更快更强!

3.初探 docker run

镜像、容器、仓库:

  • 镜像(image):Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,nginx镜像 => run => nginx容器, 通过这个镜像可以创建多个容器(可以理解为类与对象)
  • 容器(container):Docker利用容器技术, 通过镜像来创建一个或多个容器(独立运行的“盒子”,可以理解为一个linux系统)
  • 仓库(repository):存放镜像的地方(Docker Hub)

    hello-world

    docker run hello-world

docker基础入门: Docker 初体验

牛逼的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

docker基础入门: Docker 初体验

4.再探docker run

docker run –name my_nginx -v /usr/local/nginx/conf:/home/www/ -d -p 8080:80 –network my-net nginx

docker基础入门: Docker 初体验

  • –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大模块:镜像、容器、数据卷、网络;

docker基础入门: Docker 初体验
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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!