【Docker】容器的安装与使用

Docker

官方文档

不同环境 配置不同,本地开发的项目依赖于本地环境,如何能在不同环境任意执行?

Docker就是用来解决这一问题的。简而言之,Docker打包时打包了项目本身及其依赖。当这个项目运行时,会在Docker的虚拟容器中运行,无需担心不同的环境。

用途

  1. 提供运行环境
  2. 提供弹性云服务
  3. 组建微服务架构

下载安装

Win下载地址:https://docs.docker.com/desktop/install/windows-install/

MAC下载地址:https://docs.docker.com/desktop/install/mac-install/

安装直接无脑就行

  1. 检测安装是否成功
docker version

在这里插入图片描述

Docker是服务器-客户端架构,命令行运行Docker时,需要本地起服务。

Win需要以管理员身份打开cmd

  1. 启动服务命令
net start com.docker.service

在这里插入图片描述

  1. 停止服务命令
net stop com.docker.service

在这里插入图片描述

启动好了服务之后,可以继续进行操作

image文件是个啥?

image文件里面打包了 项目 及其 依赖 ,只有通过image文件我们才能生成一个Docker容器。

也就是说,image是Docker的模板,一个image文件可以生成多个同时运行的Docker实例

  1. 查看本机image文件
docker image ls
  1. 删除image文件
docker image rm [imageName]

这里备注一下:官方image文件仓库,在前人基础上再加工image文件。快捷高效。

hello-world

先从简单的helloworld学起

  1. 先将image文件从仓库pull到本地
docker image pull library/hello-world
  • ocker image pull是抓取 image 文件的命令
  • library/hello-world是 image 文件在仓库里面的位置
  • library是 image 文件所在的组
  • hello-world是 image 文件的名字。

官方提供的 image 文件,都放在[library](https://hub.docker.com/r/library/)组里面,所以是默认组,可以省略。简化写法:

docker image pull hello-world

在这里插入图片描述

  1. 本机能看到这个文件啦

在这里插入图片描述

  1. 运行这个文件

    docker container run命令会从 image 文件,生成一个正在运行的容器实例。

    这个命令也会自动从仓库中pull image文件。所以步骤1可有可无

docker container run hello-world

在这里插入图片描述

一般容器会自动终止,不能自动的手动kill它

docker container kill [containID]

容器文件

image生成的容器实例,也叫容器文件。

一旦容器生成会有两个文件,image文件和容器文件。关闭容器不会删除容器文件,只是容器停止运行罢了

# 列出本机正在运行的容器
docker container ls

# 列出本机所有容器,包括终止运行的容器
docker container ls --all

# 删除容器文件
docker container rm [containerId]

在这里插入图片描述

尝试新建自己的image文件

项目根目录下新建Docker文件

  1. dockerignore文件:打包忽略文件

    # 排除这三个路径,不打包进image文件中
    .git
    node_modules
    npm-debug.log
    
  2. Dockerfile文件:一个文本文件,用来配置image。Docker根据该文件生成二进制的image文件。

    • FROM node:16.15.0:该 image 文件继承官方的 node image,冒号表示标签,这里标签是16.15.0,即16.15.0版本的 node。
    • COPY . /app:将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录。
    • WORKDIR /app:指定接下来的工作路径为/app
    • RUN npm install:在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包进入 image 文件。
    • EXPOSE 3000:将容器 3000 端口暴露出来, 允许外部连接这个端口。
    FROM node:16.15.0
    COPY . /app
    WORKDIR /app
    RUN npm install --registry=https://registry.npm.taobao.org
    EXPOSE 3000
    

创建image文件

  • -t表示指定image参数的名字
  • 名字后面加:可以指定标签
  • .表示Dockerfile文件所在路径(.代表当前路径)
docker image build -t react-commentlist:v0.1 **.**

查看本机所有image,就能看到我们新建的image啦!

docker image ls

在这里插入图片描述

生成容器

  • p参数:容器的 3000 端口映射到本机的 8000 端口。
  • it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
  • react-commentlist:v0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
  • /bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell
docker container run -p 8000:3000 -it react-commentlist:v0.1 /bin/bash

在这里插入图片描述

可以在后面输入 npm start 启动项目。

打开浏览器,输入http://127.0.0.1:8000 就可以访问项目了。

容器退出

Ctrl + c 停止 Node 进程

Ctrl + d (或 exit)退出容器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

且陶陶º

感谢大人投喂~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值