Docker 常用命令
- Docker
- 2025-03-18
- 216热度
- 0评论
一、启动相关命令
启动 docker
systemctl start docker
关闭 docker
systemctl stop docker
重新启动 docker
systemctl restart docker
设置自启动
systemctl enable docker
docker 运行状态
systemctl status docker
查看 docker 版本
docker version
或
docker info
二、镜像相关命令
搜索镜像
docker search 镜像名
查看镜像
docker images
运行镜像
docker run 镜像名/镜像ID
拉取镜像
docker pull 镜像名:tag
比如,拉取jdk1.8
docker pull java:8
删除镜像
docker rmi 镜像名/镜像ID #若镜像在运行则会报错
docker rmi -f 镜像名/镜像ID #强制删除一个
加载镜像
docker load -i 镜像保存文件位置
docker load myimage.tar
保存镜像
docker save 镜像名/镜像ID -o 镜像保存位置和名字
docker save tomcat -o /myimage.tar
三、容器相关命令
查看正在运行的容器
docker ps
docker ps -a # 查看所有容器
#加格式化方式访问,格式会更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
创建容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用参数:
--name=NAME #为容器指定名字为NAME,不使用的话系统自动为容器命名
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互,一般连用,即-it);
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
# 创建并允许 Nginx 容器
docker run -d --name nginx -p 80:80 nginx
关闭容器
docker stop 容器名/容器ID
启动容器
docker start 容器名/容器ID
重启容器
docker restart 容器名/容器ID
删除容器
docker rm -f 容器名/容器ID
进入容器内部
docker exec -it 容器名/容器ID bash
查看容器信息
docker inspect 容器名/容器ID
查看容器所占用的系统资源
docker stats 容器名/容器ID
查看容器内运行的进程
docker top 容器名/容器ID
查看容器日志
docker logs 容器名/容器ID
从容器内复制文件
docker cp 容器名/容器ID:docker容器内的文件地址 docker所在宿主机的文件地址
修改容器重启策略
docker update --restart=always 容器名/容器ID
重启策略:
- no:默认值,不自动重启容器。
- always:无论容器退出状态如何,总是重启容器。
- on-failure:只有当容器非0退出码时才重启。
- unless-stopped:容器总是重启,除非它被明确地停止(通过 docker stop)。
四、数据卷相关命令
查看数据卷
docker volume ls
查看数据卷详情
docker volume inspect 数据卷名
docker volume inspect html
删除数据卷
docker volume rm 数据卷名
docker volume rm html
五、网络相关命令
查看网络
docker network ls
创建网络
docker network create 网络名
查看网络数据源
docker network inspect 网络名
删除网络
docker network rm 网络名
六、Docker compose
假设 docker run 部署 mysql 命令如下:
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
-v ./mysql/data:/var/lib/mysql \
-v ./mysql/conf:/etc/mysql/conf.d \
-v ./mysql/init:/docker-entrypoint-initdb.d \
--network hmall
mysql
那么用 docker-compose.yml 文件定义就是:
version: "3.8"
services:
mysql:
image: mysql
container_name: mysql
ports:
- "3306:3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123
volumes:
- "./mysql/conf:/etc/mysql/conf.d"
- "./mysql/data:/var/lib/mysql"
networks:
- new
networks:
new:
name: hmall
查看帮助
docker-compose -h
启动所有服务
docker-compose up
docker-compose up -d # 后台运行
停止并删除容器、网络、卷、镜像
docker-compose down
进入容器实例内部
docker-compose exec yml里面的服务id
展示容器
docker-compose ps
展示进程
docker-compose top
查看容器输出日志
docker-compose logs yml里面的服务id
检查配置
docker-compose config
docker-compose config -q # 检查配置,有问题才有输出
启动服务
docker-compose start
重启服务
docker-compose restart
停止服务
docker-compose stop
七、其他
命令别名
# 修改/root/.bashrc文件
vi /root/.bashrc
内容如下:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
alias dis='docker images'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
#退出
exit
:wq
#执行命令使别名生效
source /root/.bashrc

鲁ICP备19063141号
鲁公网安备 37010302000824号