docker基础知识

Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。

Docker技术的三大核心概念,分别是:

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

简单理解三者的对应关系:

其中,dockerfile是一种被docker程序解释的脚本,有一条一条的指令组成,每条指令对应Linux下的一条命令,docker程序解析这些命令间的依赖关系,根据指令生成定制的image。

常用命令:

  • docker images   #列出所有本地的docker images
  • docker pull {REPOSITORY}:{TAG}   #如docker pull dockerhub.xxx.com/rdb:cr 根据仓库名和标签拉取最新的docker 镜像
  • docker rmi IMAGE_ID   #删除指定的images
  • docker ps -a   #显示所有的docker,包含不运行的;不使用-a则只显示正在运行的docker
  • 使用docker ps -a查看docker images ,再使用docker port container ID 可以查看该容器的端口映射情况
  • docker run {REPOSITORY}:{TAG}  #启动docker 容器
  • docker start container ID    #start docker
  • docker stop container ID #停止docker 容器,它的状态改为Exited,如果启动docker时加了--rm参数,使用该命令后容器会被自动删除
  • docker rm container ID  #删除存在的docker 容器
  • ssh  roaddb@${ip} -p ${port}docker attach container ID  #进入docker
  • 如果不用ssh 登录本机docker,使用docker attach container ID只能进入主进程,最好使用下面的方式登录,:
  • docker exec -ti practical_neumann bash
  • docker exec -ti fe7c1b00e982 bash
  • (practical_neumann和container的ID都可以使用) 

举栗:

docker run --rm -it -v ${PWD}:/data -w /data -v /tmp:/tmp -h localhost.xxx.xxx.com -p 2242:22  -p 8042:8085 --dns xx.xx.xx.xx dockerhub.xxx.com/rdb:cr bash

  • --rm退出时自动删除docker容器,不使用该参数时电脑关机也不会影响到docker 容器
  • -i 以交互模式运行容器,通常和-t同时使用
  • -t 为容器重新分配一个伪输入终端,通常和-i同时使用
  • -v ${PWD}:/data #本机文件目录:docker内文件目录,将本地磁盘目录映射到docker容器的目录,可以使用多个-v映射多个目录
  • -w /data #设置工作目录
  • -p 2242:22 #本机访问端口:docker内的端口,将docker内的ssh端口映射到本机2242端口,提供ssh访问
  • -h localhost.xxx.xxx.com #设置docker容器的hostname
  • dockerhub.xxx.com/rdb:cr  #指定docker image镜像,可以通过docker images命令查看镜像列表
  • bash    #启动命令

其中,bash --dns可以不用

原文地址:https://www.cnblogs.com/mianbaoshu/p/12010601.html