前端 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部署问题记录

编写前端开发环境的docker 镜像并发布及使用教程

使用Docker部署前端项目实战教程,该踩的坑我都帮你踩了!

使用Docker部署前端项目实战教程,该踩的坑我都帮你踩了!

前端开发常用代码片段(中篇)

前端开发常用js代码片段