转自:掘金
前端时间公司所有开发同事把虚拟机+vagrant安装的开发环境换成了docker的,感觉确实很好用,现在就来介绍下docker的安装及使用教程
docker介绍
■ 简介
Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition:社区版) 和 EE(Enterprise Edition:企业版),我们用社区版就可以了。
■ 基础概念
镜像(Image):Docker 镜像(Image)就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
■ 相关地址
官方hub仓库:hub.docker.com
菜鸟教程:https://www.runoob.com/docker/docker-tutorial.html
官方安装:https://docs.docker.com/engine/install/
我们是在win10系统装的,下载地址如下:
https://hub.docker.com/editions/community/docker-ce-desktop-windows/
一般个人安装下载稳定版就行了,不需要下载企业版
■ 安装前要知道什么
如果您的系统不符合运行Docker for Windows的要求,则可以安装Docker Toolbox,Dockbox Toolbox使用Oracle Virtual Box而不是Hyper-V。
Docker Toolbox和Docker Machine用户必读:适用于Windows的Docker需要运行Microsoft Hyper-V。如果需要,Docker for Windows安装程序将为您启用Hyper-V,并重新启动计算机。启用Hyper-V后,VirtualBox将不再工作,但任何VirtualBox VM映像将保留。使用docker-machine(包括通常在Toolbox安装期间创建的默认虚拟机)创建的VirtualBox VM将不再启动。这些虚拟机不能与Docker for Windows并行使用。但是,您仍然可以使用docker-machine来管理远程VM。
必须启用虚拟化。通常,默认情况下启用虚拟化。(请注意,这与启用Hyper-V不同)
目前版本的Docker for Windows在64位Windows 10 Pro,企业和教育(1607周年纪念版,Build 14393或更高版本)上运行。将来我们将支持更多版本的Windows 10。
使用Docker for Windows创建的容器和图像在安装的机器上的所有用户帐户之间共享。这是因为所有Windows帐户都将使用相同的虚拟机来构建和运行容器。将来,Docker for Windows将更好地隔离用户内容。
嵌套的虚拟化场景,例如在VMWare或Parallels实例上运行Docker for Windows,可能会起作用,但不能保证(即不正式支持)。
Docker for Windows安装包括:安装提供Docker Engine,Docker CLI客户端,Docker Compose,Docker Machine和Kitematic。
■ 安装Docker for Windows
在上面的查找例子中,我们可以分析出一些B+树的性质:
双击Docker for Windows Installer.exe以运行安装程序。
.按照安装向导接受许可证,授权安装程序,然后继续安装。您将被要求在安装过程中使用系统密码授权Docker.app。需要特权访问来安装网络组件,指向Docker应用程序的链接,以及管理Hyper-V虚拟机。
单击安装完成对话框上的Finish以启动Docker。
Docker无法自动启动。要点击开始,搜索Docker,在搜索结果中选择应用程序,然后单击它(或按返回)。
当状态栏中的鲸鱼保持稳定时,Docker可以正常运行,并可从任何终端窗口访问。
docker常用命令
■ 基础命令
# 查看docker基础信息
docker info
# 拉取镜像
docker pull :
# 移除容器
docker rm
# 移除镜像
docker rmi
# 启动、停止、重启容器
docker stop
docker start
docker restart
docker run -itd --name -P/-p: /bin/bash
# 查看docker容器
docker ps
# 打包镜像
docker tag //
docker push /
# 登录
dockerdocker login
# 进入容器内部
docker exec -it /bin/bash
# 从仓库搜索镜像
docker search
■ 批量操作
# 杀死所有正在运行的容器
docker kill $(docker ps -a -q)
# 删除所有的容器
docker rm $(docker ps -a -q)
# 删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)
# 删除所有镜像
docker rmi $(docker images -q)
docker rmi $(docker images -q)
# 强制删除无法删除的镜像
docker rmi -f
docker rmi -f $(docker images -q)
■ Dockerfile
Dockerfile是一个包含用于组合镜像的命令的文本文档。可以使用在命令行中调用任何命令。Docker通过读取文件中的指令自动生成镜像。
脚本结构:
基础镜像信息
维护者信息
镜像操作指令
容器启动时执行指令
’#’ 为 Dockerfile 中的注释
"&&" 符号连接命令,这样执行后,只会创建 1 层镜像
Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本镜像,第一条指令必须是FROM。一个声明以#字符开头则被视为注释。可以在Docker文件中使用RUN,CMD,FROM,EXPOSE,ENV等指令。
■ docker-compose
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
END
文字 / echo
文中贴纸 / 网络(侵删)
配图 / 网络(侵删)
排版 / PHP学习手记
PHP学习手记
科技 | 前沿 | 技术 | 学习
微信号:phpStudy