镜像常用命令

启动与停止相关

# 启动docker
systemctl start docker;

# 重启docker
systemctl daemon-reload;

# 停止docker
systemctl stop docker;

# 配置开机自启docker
systemctl enable docker;

# 查看版本
docker version;

# 显示帮助信息
docker --help;

# 显示全部信息
docker info;

拉取镜像相关

# 从dockerHub上搜索镜像,[] 表示可选
docker searh [-s num] (镜像名称);
# 例:搜索收藏数不小于300的MySQL
docker search -s 300 mysql;

# 从dockerHub上拉取镜像,[]表示可选,若不加版本号则表示拉取最新的版本
docker pull (镜像名称)[:版本号];
# 例:拉取Nginx最新版
dokcer pull nginx;

# 复制一个镜像
docker commit -a (作者) -m (镜像描述) (容器ID) (新的镜像名称:版本号);

# 基于Dockerfile构建镜像,名称不能有大写,名称必须是Dockerfile
docker build -t mycentos:1.0 . # 注意后面有个 .

镜像信息相关

# 查看所有拉取的镜像
docker images [可选项];

docker 重启容器自动拉取镜像 docker自动拉取最新镜像_版本号


字段解释:

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签(版本号)
  • IMAGE ID:镜像ID
  • CREATED:镜像的拉取时间
  • SIZE:镜像大小
    可选项:
  • -a:列出本地的所有镜像及子镜像
  • -q:只显示镜像的ID(可用于批量删除)

镜像删除相关

# 根据镜像id / 镜像名称 进行删除,后面可接多个镜像id,用 空格 隔开
# []表示可选,-f:强制删除,run过的镜像是不可以直接删除的
docker rmi [-f] (镜像id/镜像名称);

# 一次性删除全部镜像
docker rmi -f $(docker images -q);

容器常用命令

基础容器相关命令
# 运行镜像,[...]表示可选
docker run [-options] (镜像名称/镜像id) [command][args]

# 例子:
# 后台运行一个Tomcat,并指定端口为8888
docker run -d -p 8888:8080 --name mytom tomcat;

# 运行一个centos并进ru容器中
docker run -it --name "mycentos" centos;

# 重新启动容器
docker restart (容器id)

options参数说明(重要的加粗了哦):

  • –name (容器新名字): 为容器指定一个名称;
  • -d: 后台运行容器,并返回容器ID,也即启动守护式容器;
  • -i:以交互模式运行容器,通常与 -t 同时使用;
  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • -P: 随机端口映射;
  • -p: 指定端口映射,有以下四种格式
    ip:hostPort:containerPort
    ip::containerPort
    hostPort(暴露的端口):containerPort(在容器中的端口)
    containerPort
    注意:
    运行一个镜像一定会产生一个容器,注意运行和不运行
    想要docker容器后台运行,就必须要有一个前台进程,
    如:
    以 docker run -d centos ,运行的centOS会瞬间退出,因为没有前台打开终端,所以终端关闭则认为没有前台进程
# 查看容器,默认只列出正在运行的容器,[]表示可选
docker ps [-options]

options参数说明:

  • -a 显示所有运行和没有运行的容器
  • -q :静默模式,只显示容器编号。
# 停止容器
docker stop (容器id)

# 启动停止的容器
docker start (容器id)

# 强行停止容器
docker kill (容器id)

# 删除容器
docker rm (容器id) 

# 删除所有的容器,-f表示强制删除,没有停止的容器是不能直接删除的
docker rm -f $(docker ps -aq)
# 查看当前正在运行容器的日志,[]表示可选
docker [-opactions] logs (正在运行的容器id);

opactions

  • -t 加入时间戳
  • -f 跟随最新的日志打印
  • –tail 数字 指定显示最后多少条
# 查询容器内部细节
docker inspect (容器ID)

# 查看容器运行进程
docker top (正在运行的容器id)

# 退出并关闭容器,因为前台进程被销毁,该命令实在容器内部使用
# Ctrl + p + q // 退出不关闭容器
exit;
宿主机与容器交互相关命令
# 进入正在运行容器的两种方式
# 方式一:
docker exec -it (容器ID) /bin/bash

# 方式二:
docker attach (容器ID)

两种方式的区别
exec :在容器中打开新的终端 并且可以启动新的进程
attach : 直接进行容器终端,不会启动新的进程,这种方式里面使用exit退出会关闭容器 如果不想关闭容器必须使用ctrl+p+q
注:
如果想进入一个Tomcat容器中,只能用方式一,因为你默认运行的 Tomcat 是阻塞了那个线程的,所以你通过方式二进入的Tomcat是被阻塞了的,因此只能通过方式一新建一个终端
但在centos中都可以,因为运行的centos终端不会阻塞线程

# 进入容器内拷贝文件到主机
docker cp (容器ID):(容器内文件的路径) (主机目录,. 表示当前目录)

# 例:拷贝Tomcat中conf文件夹到当前目录
docker cp (tomcat容器id):/usr/local/tomcat/conf .  # 注意后面有个 .

# 查看容器卷信息
docker inspect (容器名称或容器ID)