美文网首页
Docker入门

Docker入门

作者: 我叫Aliya但是被占用了 | 来源:发表于2020-08-07 17:19 被阅读0次

linux容器封装 -> 容器 -> 虚拟机

它就是个壳儿

官网下载之后,会被指引着运行一个例子

Image被看作容器模板,docker需要根据image生成容器实例。

常用命令

// 拉取image
docker image pull hello-world

// 本机image列表
docker image ls

// 运行、生成容器实例
// docker container run命令具有自动抓取 image 文件的功能
docker container run hello-world

不会自动终止的容器需要手动关闭,比如

docker container run -it ubuntu bash
docker container kill [containID]

容器和image都是一个文件。一旦容器生成,就会同时存在两个文件: image 文件和容器文件。

# 列出本机正在运行的容器
$ docker container ls
   CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

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

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

DEMO

  1. 创建一个简单的koa项目
  2. 在根目录添加 .dockerignore,忽略的文件不打包进image
    .git
    node_modules
    npm-debug.log
    
  3. 添加 Dockerfile 文件
    // 官方 node image
    FROM node:10
    // 项目文件(除了.dockerignore)拷贝进image的目录
    COPY . /app
    // 工作路径
    WORKDIR /app
    // image 构建阶段 执行的命令
    RUN npm install --registry=https://registry.npm.taobao.org
    // docker暴露的接口,不是服务器的真实接口↓
    EXPOSE 4000
    // 容器启动后执行的命令
    CMD node index.js
    
  4. 打包image
    docker image build -t koa-docker .
    
  5. 运行、生成容器
    docker container run -p 8000:4000 -it koa-docker /bin/bash
    // -p 容器的4000端口映射真实的8000端口
    // -it shell映射
    // /bin/bash 保证用户可以使用 Shell,会覆盖CMD命令
    // 或者 docker container run --rm -p 8000:3000 -it koa-demo:0.0.1
    // —rm 容器终止运行后自动删除容器文件
    

其它指令

# 查出容器的 ID
$ docker container ls --all

# 删除指定的容器文件
$ docker container rm [containerID]

# 运行(不生成)容器
$ docker container start [containerID]
$ bash container stop [containerID]

# 容器运行时的日志
$ docker container logs [containerID]

# 进入一个正在运行的 docker 容器
$ docker container exec -it [containerID] /bin/bash

# 从正在运行的 Docker 容器里面,将文件拷贝到本机
$ docker container cp [containID]:[/path/to/file] .

相关文章

网友评论

      本文标题:Docker入门

      本文链接:https://www.haomeiwen.com/subject/kkfqdktx.html