前言:什么是Docker
Docker是基于容器的虚拟化技术(类似于虚拟机,但比虚拟机更加轻量级,且它和我们的宿主机共享硬件资源及操作系统),让开发者可以打包他们的应用到一个可移植的镜像中,然后发布或移植到任何 Linux或Windows 的主机上,节省了大量的环境部署时间和成本。
名词解释
镜像(Image):镜像是一个特殊的文件系统,除了包含程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在实例化一个容器之后也不会被改变。
容器(containers):是镜像的实例,同一个镜像文件可以实例化出多个容器,和我们学习的面向对象的概念十分相似,我们可以把镜像看作类,把容器看作类实例化后的对象。
注册 Docker 帐户
点此创建Docker ID。
Docker ID 授予你对Docker存储库的访问权限,并允许你下载或共享镜像。
安装windows版的docker:
https://docs.docker.com/desktop/windows/install/
下载完成后安装时注意,出现提示时,根据自身情况选择使用 WSL 2 或者 Hyper-V(笔者使用的是WSL 2)
安装完成后,点开右上角的设置,开始自检,如自检中提示未安装WSL2,点击提示框里的下载连接下载wsl_update_x64.msi后双击安装wsl组件即可。
如自检通过,任务栏中的docker鲸鱼图标会停止跳动。
打开cmd输入 docker -v,出现版本号即说明安装成功。用docker安装LAMP
打开cmd输入:
docker pull tutum/lamp
仓库里lamp镜像众多,其中tutum/lamp镜像较为出名,本文使用tutum/lamp作为基础镜像。
拉取完成后,输入下条语句,把镜像推送到系统注册表
docker push tutum/lamp
至此安装完成。
把LAMP镜像实例化为容器并启动
打开CMD,实例化为一个容器并启动
docker run -d -p 81:80 -p 3307:3306 tutum/lamp
参数解释:
-p, --publish=[], 指定容器对外的端口
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
这里我们把81和3307端口与容器的80、3307端口绑定。
测试下,浏览器打开localhost:81,出现欢迎界面即说明部署成功
容器相关命令:
查看运行中的容器:docker ps
查看全部容器:docker ps -a
启动容器:docker start 容器名称
关闭容器:docker stop 容器名称
删除容器:docker rm容器名称
(一定要是容器的名称,也就是 NAMES 下面的名称)进入容器内部:docker exec -it 容器ID /bin/sh
进入容器内部后,就是和linux一样的操作了,输入ls即可查看目录文件,APP文件夹即为LAMP的WWW目录至此,LAMP环境搭建完成。
网友评论