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 -镜像用户/镜像名:镜像版本号
相关推荐
HalvmånEver7 分钟前
Linux:基础IO(终)
linux·运维·c++·学习·缓冲区·libc
大江东第一深情41 分钟前
Origin 2024 进行语言切换后仍然显示为英文
运维·前端
CSDN官方博客1 小时前
CSDN社区镜像创作活动
大数据·运维·人工智能
石小千1 小时前
Ubuntu24.04 安装Docker
运维·docker·容器
zhuzewennamoamtf1 小时前
Linux设备树理解和应用
linux·运维·服务器
雨大王5121 小时前
汽车厂内物流如何通过自动化实现降本增效?
运维·自动化
Qzkj6661 小时前
医疗和教育行业自动化、精准匹配、易掌握的数据分类分级最佳实践与案例
大数据·运维·自动化
我科绝伦(Huanhuan Zhou)1 小时前
Linux 环境下 SQL Server 自动收缩日志作业创建脚本(Shell 版)
linux·运维·数据库·sql server
徐徐图之!1 小时前
五、【阶段一运维基础 之 干货!!!】安装 Vmware 和 CentOS
linux·运维·centos
石小千1 小时前
OpenProject服务的备份与恢复
运维