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 -镜像用户/镜像名:镜像版本号
相关推荐
陈葛杰12 分钟前
VMware 安装 Rocky Linux 9.6(Minimal 版)超详细图文教程|轻量 · 安全 · 生产级
linux·运维·服务器
时间之里27 分钟前
【linux】:目录解析
linux·运维·服务器
qq_317620311 小时前
001:Linux 命令速查手册
linux·运维·服务器
程序员老赵1 小时前
ComfyUI Docker 镜像部署指南
人工智能·docker·aigc
Coder_Boy_1 小时前
分布式系统设计经验总结:金融vs电商的核心差异与决策思路
java·运维·微服务·金融·电商
biubiubiu07061 小时前
Ansible自动化
运维·自动化·ansible
Python大数据分析@1 小时前
使用Dify搭建工作流,实现自动化商品采集分析
运维·python·自动化·网络爬虫
code tsunami1 小时前
如何将 Helium 与 CapSolver 集成,实现无缝 CAPTCHA 自动化解决
运维·数据库·人工智能·爬虫·python·自动化
会飞的土拨鼠呀1 小时前
Docker 部署开源蜜罐Cowrie
docker·容器·开源
Tipriest_1 小时前
Linux rpm 系和 debian 系发展史,相同,不同点详细介绍
linux·运维·debian·rpm