docker核心概念与命令

docker核心概念

image文件、container文件

  • Docker把应用程序及其依赖打包在一个image文件里面,可以理解为一个容器的说明书。
  • 通过这个image文件可以生成容器的实例,在文件系统中体现为一个container文件。
  • 同一个image文件可以生成同时运行的多个实例。
image文件

image文件是一个二进制文件。一个image文件通常继承自另外一个image文件(例如docker官网的node image文件),而后加上一些个性化设置而成。
举例来说:你可以在ubuntu的image基础上加上Apache服务器,形成你自己的image。

image制作完成后,可以上传到网上的仓库,Docker 的官方仓库 https://hub.docker.com/ 是最重要、最常用的 image 仓库。

docker命令

主要有两种命令:image相关 、 container相关。
本文全部以对 koa-demo 应用的操作为例。

image相关命令
  1. 列出本机所有image文件
    docker image ls
  2. 删除image文件
    docker image rm
  3. 从docker仓库拉取image文件到本地
    docker image pull library/hello-world
    library是hello-world所在的组,docker官方仓库默认组就是library,所以可以省略。
    docker image pull hello-world
  4. 自己创建image文件
    docker image build -t imagename
    1. 以koa-demos 项目为例,先将源码下载到本地。
     git clone https://github.com/ruanyf/koa-demos.git
     $ cd koa-demos
    
    1. 在要打包的应用程序的项目根目录下,创建一个文本文件.dockerignore,用来排除不需打包到image中的文件。例如
    	.git
    	debug.log
    
    1. 再创建一个Dockerfile文本文件,内容如下
    	FROM node:8.4		#该image继承自官方的node image,冒号表示标签,这里表示8.4,即8.4版本的node.
    	COPY . /app	#将当前目录下的所有文件都拷贝到image文件的 /app 目录.
    	WORKDIR /app	#指定接下来的工作目录为 /app .
    	RUN npm install --registry=https://registry.npm.taobao.org	#在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包进入 image 文件。
    	EXPOSE 3000	#将容器的3000 端口暴露出来,允许外部连接这个端口
    
     FORM:继承自哪个image;		EXPOSE  容器要暴露的端口号     
    
    1. 最后,创建image,此命令中最后有个.,表示Dockerfile文件的所在目录,本例是当前目录,所以用.来表示。
      docker image build -t koa-demo:0.0.1 .
  5. 发布image文件到仓库。例如发布自己的image到docker官方的仓库,首先需要注册一个账号
    1. 登录到docker官网
      ```docker login ``
    2. 为本地的image标注用户名和版本
      docker image tag koa-demo:0.0.1 dockerAccount/koa-demo:0.0.1
      docker仓库会直接根据你的dockerAccoutn为你的账号开辟一个组。
    3. 最后将本地image发布到仓库
      docker image push userAccount/koa-demo:0.0.1
container相关
  1. 创建一个cotainer
    docker container run -p 8000:3000 -it userAccount/koa-demo:0.0.1 /bin/bash
    -p:本地端口与docker容器的端口的映射关系
    -it:容器的shell会映射到当前本地的shell,你在当前窗口中输入的命令会传递到容器中去
    /bin/bash:容器启动后,第一个执行的命令。这里是启用bash,以确保用户可以使用shell

如果一切正常,运行上面的命令以后,就会返回一个命令行提示符。
root@6be4c4a279df:/app#
6be4c4a279df为imageid?coainterId?
/app则是image打包时默认创建的一个目录

每运行一次run命令,就会创建一个新的容器文件。
2. 查看所有docker容器的信息及状态
docker container ls --all
3. 停止容器的运行,可以用ctrl+c停止进程,或者ctrl+d or exit退出container
docker cotainer kill containerId
或者
docker cotainer stop [container_id]
需要注意的是,以上命令只是停止运行,但是并不会删除容器文件。
4. 启动一个contialer
docker cotainer start [container_id]
5. 自动删除容器文件 --rm
docker container run --rm -p 8000:3000 -it koa-demo:0.0.1 /bin/bash
会在容器运行结束后,自动删除容器文件
6. 进入容器:如果在启动容器时,没有加-it参数,那么就只能通过以下命令进入容器,然后进入shell执行命令
docker container exec [container_id] /bin/bash
7. 查看日志:如果在启动容器时,没有加-it参数,那么就只能通过以下命令查看输出
docker container logs [container_id]
8. 从正在运行的容器里,拷贝文件到本机
docker container cp [container_id]:/path/to/file

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值