Docker的入门使用

什么是Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的 容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker 技术的三大核心概念,分别是:镜像 Image、容器 Container、仓库Repository。

核心概念

  1. Build , Ship and Run (搭建、运输、运行);
  2. Build once , Run anywhere (一次搭建,处处运行);
  3. Docker 本身并不是容器,它是创建容器的工具,是应用容器引擎;
  4. Docker 三大核心概念,分别是:镜像 Image,容器 Container、仓库 Repository;
  5. Docker 技术使用 Linux 内核和内核功能(例如 Cgroups 和 namespaces)来分隔进程,以便 各进程相互独立运行。
  6. 由于 Namespace 和 Cgroups 功能仅在 Linux 上可用,因此容器无法在其他操作系统上运 行。那么 Docker 如何在 macOS 或 Windows 上运行?Docker 实际上使用了一个技巧,并 在非 Linux 操作系统上安装 Linux 虚拟机,然后在虚拟机内运行容器。
  7. 镜像是一个可执行包,其包含运行应用程序所需的代码、运行时、库、环境变量和配置文 件,容器是镜像的运行时实例。

快速开始

  1. 为了快捷,我们直接使用Vue 脚手架构建项目:vue create docker-demo
  2. 启动项目:npm run serve
  3. 打包项目:npm run build
  4. 项目目录下的 Dist 就是我们要部署的静态资源了,我们继续下一步。需要注意:前端 项目一般分两类,一类直接 Nginx 静态部署,一类需要启动 Node 服务
  5. 新建 Dockerfile: cd docker-demo && touch Dockerfile, 然后可以看到项目目录中成功创建了 Dockerfile 文件。
  6. 准备 Nginx 镜像,运行你的 Docker 桌面端,就会默认启动实例,我们在控制台拉取 Nginx 镜像:docker pull nginx
  7. 镜像准备 OK,我们在根目录创建 Nginx 配置文件:touch default.conf
server {
 listen 80;
 server_name localhost;
 #charset koi8-r;
 access_log /var/log/nginx/host.access.log main;
 error_log /var/log/nginx/error.log error;
 location / {
 root /usr/share/nginx/html;
 index index.html index.htm;
 }
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root /usr/share/nginx/html;
 }
}
  1. 配置镜像,打开 Dockerfile ,写入如下内容:
FROM nginx
COPY dist/ /usr/share/nginx/html/
COPY default.conf /etc/nginx/conf.d/default.conf

我们逐行解释一下代码:

  • FROM nginx 指定该镜像是基于 nginx:latest 镜像而构建的;

  • COPY dist/ /usr/share/nginx/html/ 命令的意思是将项目根目录下 dist 文件夹中的所有文 件复制到镜像中 /usr/share/nginx/html/ 目录下;

  • COPY default.conf /etc/nginx/conf.d/default.conf 将 default.conf 复制到 etc/nginx/conf.d/default.conf,用本地的 default.conf 配置来替换 Nginx 镜像里的默认配 置。

  1. 构建镜像,Docker 通过 build 命令来构建镜像:docker build -t jartto-docker-demo .
  • -t 参数给镜像命名 jartto-docker-demo
  • . 是基于当前目录的 Dockerfile 来构建镜像
  1. 镜像制作成功!我们来查看一下容器:docker image ls | grep jartto-docker-demo
  2. 运行容器: docker run -d -p 3000:80 --name docker-vue jartto-docker-demo
  • -d 设置容器在后台运行
  • -p 表示端口映射,把本机的 3000 端口映射到 container 的 80 端口(这样外网就能通过本机的 3000 端口访问了 )
  • –name 设置容器名 docker-vue
  • jartto-docker-demo 是我们上面构建的镜像名字
  1. 打包镜像到本地(默认在项目所在目录):docker save -o 打包后镜像的名称.tar 镜像id
  2. 导入本地的镜像文件到docker: docker load --input 本地镜像.tar文件的位置
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值