Docker 常用命令

一、帮助启动类命令

  • 启动docker: systemctl start docker
  • 停止docker: systemctl stop docker
  • 重启docker: systemctl restart docker
  • 查看docker状态: systemctl status docker
  • 开机启动: systemctl enable docker
  • 查看docker概要信息: docker info
  • 查看docker总体帮助文档: docker --help
  • 查看docker命令帮助文档: docker 具体命令 --help

二、镜像命令

列出本地主机上的镜像:docker images
下载镜像:docker pull XXX镜像名字:tag 其中tag表示版本号,为空表示最新版本
查看容器、镜像、数据卷所占的空间:docker system df
删除镜像:docker rmi -f XXX镜像名字或ID 其中-f表示强制(force)删除
docker rmi -f $(docker images -qa) 表示删除全部镜像

三、容器命令

新建+启动容器:docker run OPTIONS IMAGE COMMAND ARG...

OPTIONS说明(常用): 有些是一个减号,有些是两个减号

--name="容器新名字"为容器指定一个名称;

-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);

-i: 以交互模式运行容器,通常与-t同时使用;

-t: 为容器重新分配一个伪输入终端,通常与-i同时使用;也即启动交互式容器(前台有伪终端,等待交互);

-P: 随机端口映射,大写PI

-p: 指定端口映射,小写p

例如新建mysql容器并启动交互:

Go 复制代码
docker run --name test -e MYSQL_ROOT_PASSWORD=1 -d mysql

//--name test 为容器指定一个名称(可替换test为自己喜欢的名称)。
//-e MYSQL_ROOT_PASSWORD=1 设置MySQL的root密码。你应该替换1为你的实际密码。
//-d 使容器在后台运行。
//mysql:latest 是要运行的MySQL镜像和标签(在这里是最新版本)


//以数据卷的形式,创建并启动mysql容器,容器内的mysql数据不会因为容器的删除而被删除
docker run --name m1 -e MYSQL_ROOT_PASSWORD=1 -v /root/mysqlData:/var/lib/mysql --privileged=true -p 3306:3306 -d mysql

//-v /root/mysqlData:/var/lib/mysql:将数据卷/root/mysqlData映射到容器的/var/lib/mysql目录
//-p 3306:3306:将容器的3306端口映射到主机的3306端口
//--privileged=true: 使容器内的root拥有真正的root权限,解决挂载目录没有权限的问题
列出当前所有正在运行的容器:docker ps options
Go 复制代码
docker ps [options]

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

crt + p + q (快捷键)退出容器但并不停止容器

启动已停止的容器:docker start 容器名或容器ID
重启容器:docker restart 容器名或容器ID
停止容器:docker stop 容器名或容器ID
强制停止容器:docker kill 容器名或容器ID
删除已经停止的容器:docker rm 容器名或容器ID
Go 复制代码
//强制删除正在运行的容器
docker rm -f 容器名或ID

//删除所有容器
docker rm -f $(docker ps -a -q)
或者
docker ps -a -q | xargs docker rm
查看容器日志:docker logs 容器名或ID
查看容器内运行的进程:docker top 容器名或ID
查看容器内部细节:docker inspect 容器名或ID
进入正在运行的容器并以命令交互:docker exec OPTIONS CONTAINER COMMAND ARG...

docker attach 容器ID

两者区别:attach 进入容器不启动新的进程,用exit退出时,会导致容器停止

exec 进入容器会启动新的进程,用exit退出时,不会停止容器

Go 复制代码
//启动mysql容器并进入命令交互
docker exec -it test mysql -u root -p

//Options:
//  -d, --detach               Detached mode: run command in the background
//      --detach-keys string   Override the key sequence for detaching a container
//  -e, --env list             Set environment variables
//      --env-file list        Read in a file of environment variables
//  -i, --interactive          Keep STDIN open even if not attached
//      --privileged           Give extended privileges to the command
//  -t, --tty                  Allocate a pseudo-TTY
//  -u, --user string          Username or UID (format: "<name|uid>[:<group|gid>]")
//  -w, --workdir string       Working directory inside the container
从容器内拷贝文件到主机上:docker cp 容器ID:容器内路径 目的主机路径
导出容器:docker export 镜像ID > 镜像名
导入容器:cat 文件名.tar | docker import -镜像用户/镜像名:镜像版本号
相关推荐
tedcloud123几秒前
OpenLogi 怎么搭建?用 Rust 打造一个轻量的 Logitech 外设管理工具
linux·运维·服务器·开发语言·后端·rust·开源
FoldWinCard5 分钟前
基于k8s高可用web集群
前端·容器·kubernetes
cui_hao_nan35 分钟前
Docker学习3
docker·容器
七夜zippoe44 分钟前
DolphinDB 运维工具实战:自动化脚本体系设计与落地(2.0.x)
运维·dolphindb·自动化脚本·体系设计·体系落地
玉&心1 小时前
在Docker中部署前端和后端的实现
运维·docker·容器
wdfk_prog1 小时前
Docker 常用语法与命令:CLI、Dockerfile 与 Compose 速查
运维·docker·容器
无敌糖果1 小时前
K8S network namespace错误分析
docker·容器·kubernetes
skywalk81632 小时前
通过下载Ubuntu ova文件在Virtual Box快速安装ubuntu
linux·运维·ubuntu·virtualbox
姚不倒2 小时前
HAProxy 系列(四):多中间件统一 VIP 入口 — 架构模式与最佳实践
运维·中间件·架构·haproxy
happymade2 小时前
7000 台网络设备批量纳管 & 自动拓扑生成实战——MSRM3 完整操作流程与关键要点复盘
运维·服务器·网络·zabbix·grafana·msrm3