docker常用命令

官方帮助文档地址

一些复杂命令,推荐直接去看官方文档,讲的特别详细

https://docs.docker.com/reference/

帮助命令

# 显式docker的版本信息
docker version 
# 显式docker系统信息,包括镜像和容器的数量
docker info
# 查看对应命令的帮助文档
docker [命令] --help 
# 查看容器占用资源的情况,cpu 内存,IO,network等
docker stats

镜像(仓库)命令

# 默认显式,所有拉去到本地的顶级镜像
docker images
# 只显示本地顶级镜像的ID
docker images -q 

# 根据镜像(仓库)的名称从网络中央仓库(docker hub)上查询
docker search [mirrors_name]

# 根据镜像名称,从网络仓库拉取镜像(默认下载最新版的)
docker pull [mirror_name]
# 拉取指定版本的镜像,tag就是版本号(注意,必须是hub上支持存在的版本号,才能拉取下来)
docker pull [mirror_name:tag]   例如:docker pull mysql:5.7.34

# 删除本地指定的镜像,可以根据镜像ID或者镜像名称
docker rmi -f [image ID|respositoy]
# 删除多个容器,根据ID,以空格分隔
docker rmi -f images1_ID images2_ID
# 删除本地所有的镜像,$()是把里面的命令当做参数使用
docker rmi -f $(docker images -aq)

tag命令

作用:

  1. 给本地镜像打一个标记(tag),可将其归入某一仓库,有点像 Git 里面给不同时段写的代码打不同的 tag 一样

语法:

docker tag source_image[:tag] target_image[:tag]

例子:
-  比如我现在有一个 centos 镜像:
实际使用场景

  • 当镜像配置到一定程度时,想打个 tag 进行记录当前版本,可以打个 V1
  • 再次更新镜像时,又可以打个 V2
  • 当是最新版本待上传时,可以不打默认就是 latest 最新
  • 这样不仅能保存最新版本的镜像,也能保存历史版本的镜像,方便新版本镜像出问题时进行版本回溯

(build)创建镜像

docker build:通过build命令加载Dockerfile文件创建自己的自定义镜像

# -f docker默认加载名为Dockerfile的文件,如果名称不是Dockerfile需要使用-f指定文件名称
# -t 设置镜像的名称
# . 代表从当前目录下加载Dockerfile文件,必不可少的
docker build [-f dockerfile_name] -t image_name[:tag] .

commit

docker commit:根据容器的更改创建新映像

# -a, --author	为新提交的镜像署名 name<email> 例如:liuhao<123456@qq.com>
# -c, --change	添加附属Dockerfile命令,多个使用空格隔开
# -m, --message  设置提交镜像的相关信息
# -p, --pause   停止容器的运行,在创建新容器时,默认true      
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

docker push

docker push:向docker hub上推送自己的镜像,当然也可以向自己的阿里云私有镜像仓库推送(推送之前,先要登录你的docker账户)

docker push name[:tag]

save (保存镜像到本地)

# -o 指定保存的路径
docker save -o path image [image]

load(从本地文件加载镜像)

# -i	从 tar 存档文件中读取镜像
docker load -i file_path 

容器命令

注意:有了镜像之后才可以创建容器

运行容器

  1. docker run [option] image,运行容器命令,这个指令有很多作用详情可以参考官方文档
docker run [option] image [command]

# options[参数说明]
--name="name" 给容器设置名字,一般我们从同一份镜像启动多个容器,所以就要设置名字区分
-d 指定容器以后台方式运行
-it 使用交互方式运行,进入容器查看内容,-i: 交互式操作。-t: 终端。
-p  指定容器的端口,设置端口映射,例如: -p 80:8080将容器的8080端口映射到外部主机的80端口上
-P 随机指定端口
-m 设置容器可使用的内存上限

案例:在docker里面启动一个centos虚拟机

docker run -it centos /bin/bash

其中,-it代表以交互的方式,在终端上运行,/bin/bash则是附带的命令,启动centos的bash程序
在这里插入图片描述
2. docker exec [options] image:这个指令也可以启动容器,而且启动容器后,使用exit从容器中退出,容器依然会保持运行

启动容器

  1. docker start [容器ID]:启动容器,根据容器ID启动容器
  2. docker restart [容器ID]:重启容器,根据容器ID

停止容器

  1. docker stop [容器ID]:通过容器ID,停止正在运行的容器
  2. docker kill [容器ID]:根据容器ID,强制杀掉正在运行的容器’

查看容器的元数据信息

docker inspect [容器的名称/ID]

查看日志,根据对应容器的名称或ID

docker [option] logs [container_name]

可选参数:

  1. --detial:显示提供给日志的额外详细信息
  2. -f, --follow:跟踪日志输出
  3. --since [string]:显式特定时间戳之后的日志输出
  4. -n, --tail [string]:显式最新的日志,指定显式多少行
  5. -t, --timestamps:显式时间戳
  6. --until string:显式特定时间戳之前的日志

查看容器里面的进程信息

docker top [容器名称/ID]

查看运行中的容器

# 查看所有运行中的容器
docker ps 
# 查看所有运行过的容器
docker ps -a
# 显式最近创建的容器,-n=2代表显式的数量
docker ps -l [-n=2]
# 只显示容器的编号
docker ps -q
# 筛选显式的容器,详情可以看官网示例
docker ps -f [params]

进入正在运行的容器

  1. docker exec -it [容器ID] [command]:根据正在运行的容器ID,进入容器,-it代表以交互的模式进入(推荐使用)

  2. docker attach [容器ID]:根据指定ID进入容器内,(这个会进入到容器正在执行的终端,而且退出时,容器会自动停止)

    例:使用docker exec进入mysql的终端,然后从mysql容器退出,mysql容器依然在运行
    在这里插入图片描述

从容器中拷贝文件(文件夹)

# src_path:就是docker容器内部要拷贝的目标路径
# dest_path:就是外部存放拷贝文件的路径
docker cp [options] 容器名称/id:src_path dest_path

拷贝文件(文件夹)到容器内部

docker cp [option] src_path 容器名/id:dest_path

退出容器

  1. exit:退出容器,在容器里面输入exit就可以退出容器,容器也会停止运行
    演示使用docker exec命令后再退出容器,容器会继续保持运行
    在这里插入图片描述
  2. Ctrl+P+Q:以快捷键的方式退出容器,容器也会保持运行

删除容器

# 根据容器的ID删除容器,加-f代表强制(force)删除
docker rm -f [容器ID]
# 删除所有的容器
docker rm -f $(docker ps -q)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值