前端 Docker 基本教程
Posted cnyball
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端 Docker 基本教程相关的知识,希望对你有一定的参考价值。
为什么要学习 Docker ?
每学一个东西,我们肯定是基于某个需求去学习的,众所周知,软件开发最麻烦的是环境配置,开发好好的,部署出问题就很难受,所以为了确保开发、测试、部署环境一致,且高效的部署所以选择了容器技术而非 VM ,而 ?Docker 是基于 Linux 容器技术的开源项目,它的口头禅就是:“一次构建,处处运行”,具有轻量,速度,社区活跃,且拓展性高。
安装
点我进入官网安装
Docker 支持 Linux、Mac、 Window,直接去官网下载安装就行了
快速开始
学习新的技术都需要一个 Hello World,让我们快速开始体验一下 Docker
直接进入终端开始吧!
# 拉取nginx镜像
docker pull nginx
# 创建一个nginx容器
docker run -d --name test-nginx -p 3000:80 nginx
然后打开 localhost:3000 即可访问到熟悉的 nginx 页面了
是不是非常简单?那我们接下来具体说一说 Docker 的组成
镜像 image
镜像是一个二进制文件,里面具有应用程序以及依赖,只有通过它,Docker 才能够生成容器,相当于模具一样,同一个镜像文件可以生成多个容器实例
对于如何制作镜像,一般来说我们都是通过加工别人基础镜像来生成我们自己的镜像,而不是从零开始,而且我们也可以在这里共享我们的镜像,这也是我们选择它的理由之一,我们可以享受社区的贡献
镜像常用的命令
# 列出本机的所有 image 文件。
$ docker image ls
# 拉取镜像
$ docker pull [imageName]
# 删除 image 文件
$ docker image rm [imageName]
用 ?Dockerfile? 构建一个镜像
在前面我们已经使用过 nginx 的镜像了,这次我们尝试用 ?Dockerfile? 构建一个自己的镜像
新建一个文件夹,在里面新建一个 index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Hello World</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
然后新建一个 ?Dockerfile 文件
# 声明基于 nginx 最新的镜像 这里说一下镜像名:后面的是标签 默认是latest
FROM nginx:latest
# 把刚才 index.html 复制到 nginx 的 html 路径去
COPY index.html /usr/share/nginx/html/index.html
# 声明暴露80端口
EXPOSE 80
运行命令
# 生成一个名为 nginx 标签为0.0.1 的镜像 ,注意最后还有一个 .
docker image build -t nginx:0.0.1 .
# 根据刚生成的镜像 启动容器
docker run -d --name test-nginx1 -p 3001:80 nginx:0.0.1
这时候再次访问 locahost:3001 已经不是默认的 nginx 的访问页面了
这里解释一下 -p 参数是指容器的 80 端口映射到本机的 3001 端口
容器 container
容器常用的命令
# 查看正在运行的容器
docker ps
# 查看所有创建过的容器(运行或者关闭)
docker ps -a
# 停止容器
docker stop [container]
# 启动容器
docker start [container]
# 删除容器
docker rm [container]
# 查看后台运行的日志
docker logs [containe]
可以先用这些容器命令操作一下我们之前创建的容器,尝试一下
那么在上一节我们自己构建了一个镜像代替了 nginx 的默认页面,那如果我们还想改怎么办?除了新构建一个镜像之外,我们还可以直接进入容器里进行修改
docker container exec -it [containe] /bin/bash
这样就进去了容器的 shell 命令
当然,真正开发的时候,肯定不可能是这样去修改了,好比之前的端口映射,也可以将容器的内部的目录也映射出来实现共共享
数据卷 ?Volume
回到我们前面构建镜像的文件夹,然后启动一个 nginx 容器(这里使用的端口和容器名与快速开始的创建的容器相同,请同学们复习一下容器命令先自行删除再创建)
docker run -d --name test-nginx -v $PWD/index.html:/usr/share/nginx/html/index.html -p 3000:80 nginx
我们打开 locahost:3000 修改一下 index.html 的内容为 Hello Volume ,刷新一下网页即可看到我们修改的内容
学到我们本节的内容即可基础的使用 docker 进行开发,接下来还有关于网络,多个容器服务,有空再更
网络 Networking
组合 docker-compose
总结
简单的介绍一下如何使用 Docker 以及基本的命令,如果有想要看书的同学,可以看第一本 Docker 书
以上是关于前端 Docker 基本教程的主要内容,如果未能解决你的问题,请参考以下文章
使用Docker部署前端项目实战教程,该踩的坑我都帮你踩了!