【docker笔记】docker常用命令

1、帮助启动类命令

1.1 启动、重启、查询当前状态、停止

xml 复制代码
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker

1.2 设置开机启动

xml 复制代码
systemctl enable docker

1.3 查看docker概要信息

xml 复制代码
docker info

1.4 查看docker帮助文档

xml 复制代码
docker --help
docker 具体命令 --help

2、镜像命令

2.1 查看本地镜像(表头:REPOSITORY--仓库源 TAG--镜像标签 IMAGE ID--镜像id CREATED--镜像创建时间 SIZE--镜像大小)

同一个仓库源可以多个TAG版本,代表这个仓库源的不同的版本,使用REPOSITORY:TAG来定义不同的镜像,如果不指定一个镜像的版本标签,docker将默认使用最新的latest镜像

xml 复制代码
docker images
options:
	-a:列出本地所有镜像(含历史镜像)
	-q:只显示镜像id

2.2 搜索某个镜像是否在远程仓库(表头:NAME--名字 DESCRIPTION--描述 STARS--点赞数量 OFFICIAL--是否是官方 AUTOMATED--是否能够自动构建)

xml 复制代码
docker search [options] imagesname
options:
	docker search --limit 5 redis  只列出前5个

2.3 下载镜像

xml 复制代码
docker pull imagesname[:TAG]
such:  docker pull redis:6.0.8
such:  docker pull imagesname  默认拉最新版

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

xml 复制代码
docker system df

2.5 移除镜像

xml 复制代码
docker rmi imagesId
docker rmi -f imagesId 删除单个
docker rmi -f imagesname1:TAG imagesname2:TAG 删除多个
docker rmi -f $(docker images -qa) 删除全部 

3、容器命令

有镜像才能创建容器,这是根本前提

3.1 新建+启动容器

xml 复制代码
docker run [options] image [command][arg..]   启动交互式容器(前台命令行)

options说明

xml 复制代码
--name="容器新名字"  为容器指定一个名字
-d:后台运行容器并返回容器ID,也即启动守护式容器(后台运行)

-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪终端,通常与-i同时使用
docker run -it image:镜像启动之后有进一步的命令请求,需要你返回一个终端让我进一步进行操作

-P:随机端口映射
-p:指定端口映射

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

xml 复制代码
docker ps [options] 

options说明

xml 复制代码
-a:列出当前所有容器(正在运行+历史运行)
-l:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器编号

3.3 退出容器

shell 复制代码
exit   			run进去容器,exit退出,容器停止
ctrl+p+q  		run进去容器,ctrl+p+q退出,容器不停止

3.4 启动已经停止运行的容器

shell 复制代码
docker start 容器ID或者容器名

3.5 重启容器

shell 复制代码
docker restart 容器ID或者容器名

3.6 停止容器

shell 复制代码
docker stop 容器ID或者容器名

3.7 强制停止容器

shell 复制代码
docker kill 容器ID或者容器名

3.8 删除已经停止的容器

shell 复制代码
docker rm 容器ID或者容器名
docker rm -f 容器ID或者容器名          //强制删除(无需停止)

3.9 启动守护式模式容器(后台服务器)

大部分场景下,我们希望docker的服务是在后台运行的,我们可以通过-d指定容器的后台运行模式

shell 复制代码
docker run -d 容器名

注意事项:

使用docker run -d centos后,容器启动成功后会退出

docker机制:docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是一直挂起的命令(top...),就会自动退出

3.10 查看容器日志

shell 复制代码
docker logs [OPTIONS] 容器id/容器名称
-details  :显示提供给日志的其他详细信息
-f --follow :查看实施日志
--tail :仅列出最新N条容器日志
-t,--timestamps :显示时间戳加粗样式
docker logs --tail 50 --follow --timestamps nginx1.23.2

3.11 查看容器内运行的进程

shell 复制代码
docker top

3.12 查看容器内部细节

shell 复制代码
docker inspect 容器id

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

shell 复制代码
docker exec -it 容器ID bashShell
docker attach 容器ID

区别:

attach直接进入容器启动命令的终端,不会启动新的进程,用exit退出会导致容器停止

exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出不会导致容器停止(推荐)

一般用-d后台启动程序,再用exec进入对应容器实例

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

shell 复制代码
docker cp 容器ID:容器内路径 目的主机路径

3.15 导入和导出容器

export导出容器的内容留作为一个tar归档文件【对应import命令】

shell 复制代码
docker export 容器ID > 文件名.tar 

import 从tar包中的内容创建一个新的文件系统再导入为镜像【对应export】

shell 复制代码
cat 文件名.tar|docker import -镜像用户/镜像名:镜像版本号

3.16 导入和导出镜像

修改镜像标签

shell 复制代码
docker commit 容器id 镜像名称:tag

导出镜像的内容留作为一个tar归档文件(tar文件会保存在执行当前命令的目录下)

shell 复制代码
docker save -o 压缩文件名称 镜像名称:tag

从tar包中的内容创建一个新的文件系统再导入为镜像

shell 复制代码
docker load -i 压缩文件名称
相关推荐
可爱又迷人的反派角色“yang”4 分钟前
k8s(二)
linux·运维·docker·云原生·容器·kubernetes·云计算
计算机小手15 分钟前
内网穿透系列十六:使用 wg-easy 快速搭建基于 wireguard 的虚拟局域网,支持Docker部署
经验分享·网络协议·docker·开源软件
旧日之血_Hayter21 分钟前
docker部署项目,/var/lib/docker/overlay2目录满了如何清理?
运维·docker·容器
文言一心38 分钟前
基于 Docker + Docker Compose 实现一键部署(单节点部署场景下轻量、易维护、可一键启停)
运维·docker·容器
守护砂之国泰裤辣1 小时前
Windows+docker下简单kafka测试联调
java·运维·spring boot·docker·容器
释怀不想释怀1 小时前
Docker(常见命令)
docker·容器·eureka
Java陈序员1 小时前
运维必备!一款全平台可用的服务器管理利器!
linux·react.js·docker
德育处主任1 小时前
『NAS』中午煮什么?Cook
前端·docker
腥臭腐朽的日子熠熠生辉2 小时前
nest js docker 化全流程
开发语言·javascript·docker
酒醉的胡铁2 小时前
Docker Desktop 数据迁移完整流程(Windows 10/11 x64)
windows·docker·容器