Docker 常用命令备份

Docker vs 虚拟机

传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便

三个基本概念

镜像

操作系统分为内核和文件系统,而景象就相当于root文件系统。除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。

容器

容器与景象的关系就像是面向对象中的类与实例。容器的实质是进程,容器的进程运行在属于自己的独特的命名空间,因此容器可以拥有自己的root文件系统,自己的网络配置,自己的进程空间,容器的进程运行在一个隔离的环境中;
镜像采用分层存储,容器也一样,以镜像为基础层,在其上创建一个当前容器的存储层,为容器运行时读写而准备的存储层为容器存储层。

仓库

通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。
仓库名经常以 两段式路径 形式出现,比如 jwilder/nginx-proxy,前者往往意味着 Docker Registry 多用户环境下的用户名,后者则往往是对应的软件名。但这并非绝对,取决于所使用的具体 Docker Registry 的软件或服务。

镜像操作命令

  • docker pull 仓库名:tag
  • docker images 列出镜像
  • docker system df 查看镜像、容器、数据卷的占用空间
  • docker image prune 删除虚悬镜像
  • docker image rm 镜像ID/镜像名/短ID(前三个数字就可以)
  • docker image rm $(docker image ls -q reids) 批量删除redis的仓库
  • docker run –name webserver -d -p 8080:80 nginx 用nginx运行一个容器
  • docker exec -it webserver bash 进入容器

容器操作命令

  • docker run -it ubuntu:16.04 bash 启动一个bash终端
  • docker container start 启动一个已经终止的容器
  • docker container stop
  • docker container ps 查看容器进程
  • docker container ls -a 列出所有容器
  • docker container rm 删除容器,如果需要删除运行的容器加-f参数
  • docker attach 短id attach命令进入容器 exit会导致容器停止
  • docker exec -i -t 短id等 bash 推荐使用,exit不会导致容器停止

仓库命令

  • docker search centos

-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
-i 则让容器的标准输入保持打开。
-d 后台运行

将当前用户加入docker用户组

sudo gpasswd -a ${USER} docker 这样以后输入docker命令就不用每次前面加sudo了

坚持原创技术分享,您的支持将鼓励我继续创作!