docker安装卸载及基本命令使用

211 阅读4分钟

一. docker的安装

  1. 先安装gcc以及gcc-c++环境
yum -y install gcc
yum -y install gcc-c++
  1. 安装需要的软件包
yum install -y yum-utils
  1. 设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 更新yum软件包索引
yum makecache fast
  1. 安装DOCKER CE
yum -y install docker-ce docker-ce-cli containerd.io
  1. 启动docker
systemctl start docker
  1. 检查docker的版本
docker version
  1. 停止docker
systemctl stop docker
  1. 重启docker
systemctl restart docker
  1. 查看docer的状态
systemctl status docker
  1. 设置开机启动docker
systemctl enable docker
  1. 查看docker的概要信息
docker info
  1. 查看docker的帮助文档
docker --help
  1. 查看docker的命令帮助文档
docker 具体命令 --help

二. docker的卸载

systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

三. 为什么docker比虚拟机快

(1)docker有着比虚拟机更少的抽象层

   由于docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。

(2)docker利用的是宿主机的内核,而不需要加载操作系统OS内核

   当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。

四. docker常用命令

一. 镜像命令

查询本地docker镜像

  1. 列出本地主机的镜像,参数说明,-a:列出本地所有的镜像,-q:只显示镜像id,各个选项说明:
  2. REPOSITORY:表示镜像的仓库源
  3. TAG:镜像的标签版本号
  4. IMAGE ID:镜像
  5. IDCREATED:镜像创建时间
  6. SIZE:镜像大小
  • 同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest镜像
docker images

查询远程某个镜像

  1. 网站 hub.docker.com
  2. 命令
docker search [OPTIONS] 镜像名字
  1. 参数说明,--limit : 只列出N个镜像,默认25个,如:docker search --limit 5 redis

拉取某个镜像

  1. 下载镜像
docker pull 镜像名字[:TAG]
  1. 没有tag就拉取最新版本的镜像

查看镜像/容器/数据卷所占的空间

docker system df 查看镜像/容器/数据卷所占的空间

删除镜像

docker rmi 某个XXX镜像名字ID
  1. 删除单个镜像
docker rmi -f 镜像ID
  1. 删除多个镜像
docker rmi -f 镜像名1:TAG 镜像名2:TAG
  1. 删除全部,慎用
docker rmi -f $(docker images -qa)

二. 容器命令

  • 有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)

新建+启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run -it centos /bin/bash

参数说明

  • --name="容器新名字"为容器指定一个名称;
  • -d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
  • -i:以交互模式运行容器,通常与 -t 同时使用;
  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;也即启动交互式容器(前台有伪终端,等待交互);
  • -P: 随机端口映射,大写P
  • -p: 指定端口映射,小写p

列出当前所有正在运行的容器

docker ps [OPTIONS]

参数说明:

  • -a: 列出当前所有正在运行的容器+历史上运行过的
  • -l: 显示最近创建的容器。
  • -n:显示最近n个创建的容器。
  • -q: 静默模式,只显示容器编号。

退出容器

  1. exit,run进去容器,exit退出,容器停止
  2. ctrl+p+q,run进去容器,ctrl+p+q退出,容器不停止

启动已停止运行的容器

docker start 容器ID或者容器名

重启容器

docker restart 容器ID或者容器名

停止容器

docker stop 容器ID或者容器名

强制停止容器

docker kill 容器ID或容器名

删除已停止的容器

  1. 删除单个
docker rm 容器ID
  1. 一次性删除多个
docker rm -f $(docker ps -a -q) 或者
docker ps -a -q | xargs docker rm

从容器内拷贝文件到主机上

docker cp 容器ID:容器内路径 目的主机路径

导入和导出容器

  1. export 导出容器的内容留作为一个tar归档文件 [对应import命令]
  2. import 从tar包中的内容创建一个新的文件系统再导入为镜像 [对应export]
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

三. 案例

拉去并启动redis镜像

  1. 前台交互式启动
docker run -it redis:6.0.8
  1. 后台守护式启动
docker run -d redis:6.0.8
  1. 查看容器日志
docker logs 容器ID
  1. 查看容器内运行的进程
docker top 容器ID
  1. 查看容器内部细节
docker inspect 容器ID

进入正在运行的容器并以命令行交互

  1. 命令
docker exec -it 容器ID bashShell
docker attach 容器ID
  1. 区别
  • attach 直接进入容器启动命令的终端,不会启动新的进程。用exit退出,会导致容器的停止。
  • exec 是在容器中打开新的终端,并且可以启动新的进程。用exit退出,不会导致容器的停止。
  1. 进去redis客户端操作,一般使用-d后台启动程序,再使用exec进入容器实例
docker exec -it 容器ID /bin/bash
docker exec -it 容器ID redis-cli