Docker 入门

来源:互联网 发布:java nio和io的区别 编辑:程序博客网 时间:2024/06/11 08:36

Docker 入门


什么是docker

简单的说它可以帮助用户将应用和所有的依赖打包成一个标准单元,但又不像虚拟机有很大的overhead,所以更加的高效

什么是container

虚拟机提供了很好的分离机制,host OS中的程序与guest OS中的程序不易相互影响。但硬件虚拟化的代价是很大的
但container不同,它就用host OS的硬件,并且提供了较好的分离机制

相关术语

  • Image:就像一个蓝图,是container的基础
  • Container:依据image创建出来,是真正运行应用的东西
  • docker deamon:管理docker container 的守护进程,client会与它交流
  • Docker client:一个命令行工具,用户可通过它与docker deamon交互
  • Docker hub:里面是所有可用的docker image

基本的命令

  • 从Docker registry中抓取image存到本机中
docker pull IMAGE
  • 列出系统中所有的image
docker images
  • 搜索docker hub中的image
docker [options] search TERM
  • 运行container
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

当运行这个命令时,docker client找到这个image,加载一个container,并在这个container中运行一个命令
-it 这个option会给container交互的tty, 这样就可以在container中尽情运行各种命令了
可以用docker run —help查看所有的option
-p 指定端口的转发

  • 查看系统中的container
docker ps [options]

如不提供option,则只列出正在运行的container
-a 这个option会列出所有的container
-q 只返回container 的id
-f 根据提供的条件过滤出符合条件的container

  • 删除特定ID的container
docker rm [options] CONTAINER
  • 删除已经退出的container
docker rm $(docker ps -a -q -f status=exited)
  • 删除指定 的image
docker rmi  [options] IMAGE
  • 创建image
Docker build [options] PATH

指定dockerfile 的路径,根据docker file 建立 image

Dockerfile

除了可以从docker hub中下载image外,也可以自己创建image
Dockerfile就是一个文本文件,里面是一系列的命令,docker client在创建image时会调用这些命令。这些命令与linux命令几乎一样

常用关键字:

  • FROM:声明base image
  • EXPOSE:暴露端口
  • RUN:运行命令
  • COPY:将本地的文件复制到container中

参考资料

https://docker-curriculum.com/#prerequisites

原创粉丝点击