Docker基本命令

111 阅读3分钟

一、下载安装前:

1. 更新yum:
yum update
2. 如有安装旧版本,先删除旧版本:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

二、下载安装:

1.使用仓库进行安装 Docker Engine-Community设置官方仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
2.设置阿里云仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装所需软件
yum install -y yum-utils device-mapper-persistent-data lvm2
4.执行安装Docker命令
        yum install docker-ce docker-ce-cli containerd.io
5.查看安装成功的Docker版本
docker -v    #查看docker的版本信息
docker info  #系统信息,包括镜像和容器数
6.启动Docker
(1)开机自启
    systemctl enable docker
(2)启动
    systemctl start docker

三、基本命令

1.查看dockers版本信息
docker -v
docker version
2.显示 Docker 系统信息,包括镜像和容器数
docker info
3. 帮助命令
docker --help

四、镜像命令

1. 查看镜像列表
docker images
     
[options]
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
--digests :显示镜像的摘要信息
-f :显示满足条件的镜像
--format :指定返回值的模板文件
--no-trunc :显示完整的镜像信息
-q :只显示镜像ID。

例:docker images -a      (列出本地所有的镜像)
     docker images centos(列出本地镜像中REPOSITORY为centos的镜像列表)
2. 从Docker Hub查找镜像
docker search [OPTIONS] 镜像名字

[options]
--automated :只列出 automated build类型的镜像;
--no-trunc :显示完整的镜像描述;
-f <过滤条件>:列出收藏数不小于指定值的镜像。

例:docker search --no-trunc centos  #显示centos完整的镜像描述
3. 下载镜像
docker pull 镜像名称
例:docker pull nginx
4. 删除指定镜像
docker rmi 镜像id
docker rmi 镜像名称

五、容器命令

1.新建并启动容器
docker run [options] IMAGE [COMMAND] [ARG...]

[options]
--name="容器新名字": 为容器指定一个名称;
-d: 后台运行容器,并返回容器 ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P(大写): 随机端口映射;
-p: 指定端口映射,有以下四种格式:ip:hostPort:containerPort、ip::containerPort、hostPort:containerPort、containerPort
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

例:docker run -it centos  /bin/bash(启动交互式容器,以交互模式启动一个容器,在容器内执行 /bin/bash 命令)
3. 列出当前所有正在运行的容器
docker ps [options]

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

例:docker ps -n 5(显示最近5个创建的容器)
4.退出容器
exit              #容器停止退出
Ctrl + P + Q  #容器挂起退出
5.启动一个已经停止的容器
docker start 容器ID / 容器名
6.重启容器
docker restart 容器ID / 容器名
7.停止容器
docker stop 容器ID / 容器名
8.强制停止容器
docker kill 容器ID / 容器名
9.删除已经停止的容器
docker rm 容器ID / 容器名

一次性删除多个容器
-   docker rm -f $(docker ps -a -q)
-   docker ps -a -q | xargs docker rm
10.查看容器日志
 docker log -f -t --tail 容器ID
 
 [options]
    -t 是加入时间戳
    -f 跟随最新的日志打印
    --tail 数字显示最后多少条
11.查看容器内运行的进程
 docker top 容器ID
12.查看容器内部细节
 docker inspect 容器ID

Last 可能遇到的问题

1. 删除镜像时报错:Error response from daemon: conflict: unable to delete 580c0e4e98b0 (must be forced) - image is being used by stopped container 224b241b1f31
(1)docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
(2)docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
(3)docker images|grep none|awk '{print $3 }'|xargs docker rmi + 镜像id
(4)docker rmi 镜像id