Docker 常用命令大全!!

server/2024/9/22 11:12:00/

Docker 常用命令

  • 一、启动类
  • 二、 镜像类
      • 1. 查看镜像
      • 2. 搜索镜像
      • 3. 拉取镜像
      • 4. 运行镜像
      • 5. 删除镜像
      • 6. 加载镜像
      • 7. 保存镜像
  • 三、容器
  • 四. 网络类
      • 1. 查看网络
      • 2. 创建网络
      • 3. 查看网络数据源
      • 4. 删除网络
  • 五、 Docker compose
      • 1. 查看帮助
      • 2. 启动所有服务
      • 3. 停止并删除容器、网络、卷、镜像。
      • 4. 进入容器实例内部
      • 5. 展示容器
      • 6. 展示进程
      • 7. 查看容器输出日志
      • 8. 检查配置
      • 9. 启动服务
      • 10. 重启服务
      • 11. 停止服务
  • 六、 其他
      • 1. 命令别名

一、启动类

docker_2">1. 启动 docker

systemctl start docker

docker_6">2. 关闭 docker

systemctl stop docker

docker_10">3. 重新启动 docker

systemctl restart docker

docker__16">4. docker 设置自启动

systemctl enable docker

docker__21">5. 查看 docker 运行状态

systemctl status docker

docker__26">6. 查看 docker 版本号等信息

docker version

或者

docker info

该命令还可以查看到有多少 容器及其状态镜像 的信息

<a class=docker info" />

docker__39">7. docker 帮助

docker --help // 查看总体文档
docker run --help // 查看docker run 的帮助文档

二、 镜像类

1. 查看镜像

docker images

2. 搜索镜像

docker search [OPTIONS] 镜像名字
docker search mysql

3. 拉取镜像

docker pull
docker pull mysql #没有制定版本则默认最新版 

docker 官方镜像地址

4. 运行镜像

docker run
docker run tomcat

运行镜像后可以按 ctrl+c 退出

5. 删除镜像

docker rmi  镜像名/镜像ID #若镜像在运行则会报错
docker rmi -f 镜像名/镜像ID #强制删除一个
docker rmi -f mysqldocker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID #删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f mysql redisdocker rmi -f $(docker images -aq)
#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID

6. 加载镜像

docker load -i 镜像保存文件位置
docker load myimage.tar

7. 保存镜像

docker save 镜像名/镜像ID -o 镜像保存位置和名字
docker save tomcat -o /myimage.tar

三、容器

1. 查看正在运行的容器

docker ps
docker ps -a # 查看所有容器
#加格式化方式访问,格式会更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"

2. 创建容器

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

3. 启动守护式容器(后台运行)

docker run -d 容器docker run -d redis:6.0.8

4. 停止容器

docker stop 容器docker stop nginx

5. 启动容器

docker start 容器docker start nginx
docker restart 容器docker restart nginx

6. 进入正在运行的容器

docker exec -it 容器名 bashshell
docker exec -it nginx /bin/bash```

7. 停止容器

docker stop 容器docker stop nginx

8. 强制停止容器

docker kill 容器docker kill nginx

9. 删除容器

#删除一个
docker rm 容器ID  
docker rm nginx
docker rm -f 容器ID  #强制删除
docker rm -f nginx#删除多个
docker rm -f $(docker ps -a -q)docker ps -a -q | xargs docker rm

10. 查看容器日志

docker logs 容器docker logs nginx

11. 查看容器内运行的进程

docker top 容器docker top nginx

12. 查看容器内部细节

docker inspect 容器docker inspect nginx

13. 创建容器数据卷挂载

# 创建容器并指定数据卷,注意通过 -v 参数来指定数据卷
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx

14. 查看数据卷

docker volume ls

15. 查看数据卷详情

docker volume inspect 数据卷名
docker volume inspect html

16. 删除数据卷

docker volume rm 数据卷名
docker volume rm html

四. 网络类

1. 查看网络

docker network ls

2. 创建网络

docker network create 网络名
docker network create hmall

3. 查看网络数据源

docker network inspect 网络名
docker network inspect hmall

4. 删除网络

docker network rm 网络名
docker nerwork rm hmall

五、 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 hmallmysql

那么用docker-compose.yml 文件定义就是:

version: "3.8"services:mysql:image: mysqlcontainer_name: mysqlports:- "3306:3306"environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123volumes:- "./mysql/conf:/etc/mysql/conf.d"- "./mysql/data:/var/lib/mysql"networks:- new
networks:new:name: hmall

1. 查看帮助

docker-compose -h

2. 启动所有服务

docker-compose up
docker-compose up -d # 后台运行

3. 停止并删除容器、网络、卷、镜像。

docker-compose down

4. 进入容器实例内部

docker-compose exec  yml里面的服务id

5. 展示容器

ocker-compose ps

6. 展示进程

docker-compose top

7. 查看容器输出日志

docker-compose logs  yml里面的服务id

8. 检查配置

docker-compose config
docker-compose config -q # 检查配置,有问题才有输出

9. 启动服务

docker-compose start

10. 重启服务

docker-compose restart

11. 停止服务

docker-compose stop

六、 其他

1. 命令别名

# 修改/root/.bashrc文件
vi /root/.bashrc
内容如下:
# .bashrc# User specific aliases and functionsalias 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

学习期间经常忘记 docker 的命令记录一下 ~

求点赞收藏o( ̄▽ ̄)d~


http://www.ppmy.cn/server/43236.html

相关文章

Java进阶学习笔记26——包装类

包装类&#xff1a; 包装类就是把基本类型的数据包装成对象。 看下API文档&#xff1a; deprecated&#xff1a;极力反对、不赞成的意思。 marked for removal&#xff1a;标识为去除的意思。 自动装箱&#xff1a;基本数据类型可以自动转换成包装类。 自动拆箱&#xff1a;…

vue+echart :点击趋势图中的某一点或是柱状图,出现弹窗,并传输数据

样式 在趋势图中点击某一个柱状图&#xff0c;出现下面的弹窗 代码实现 主要是在趋势图页面代码中&#xff0c;在初始化趋势图的设置中&#xff0c;添加对趋势图监听的点击方法 drawChart() {const chartData this.chartData;let option {};if (!chartData.xData?.len…

JMeter学习笔记二

面试题&#xff1a; 1.做接口测试时&#xff0c;你是怎么做的数据校验(返回值验证)&#xff1f;一般你会验证哪些数据&#xff1f; 校验code 200&#xff08;说明后端接到了你的请求&#xff0c;并且给了应答&#xff09; 返回信息 sucess 2.有1w个用户名密码需要登录&#xff…

24校招总结

个人背景 本科&#xff1a;三本通信专业 硕士&#xff1a;B区双非计算机硕 今年2月签了东南沿海二线城市某公司C游戏服务端开发 我同学大部分都是去电网&#xff0c;大专老师&#xff0c;气象局事业编……就我这个是纯牛马了。 离收到Offer3个月了&#xff0c;前段时间参加…

css - sass or scss ?

总的来说&#xff0c;Sass 和 SCSS 提供的功能是一样的&#xff0c;选择哪种语法主要取决于你的个人或团队的偏好。

C++

定义自己的命名空间my_sapce&#xff0c;在my_sapce中定义string类型的变量s1&#xff0c;再定义一个函数完成对字符串的逆置。

视觉SLAM十四讲:从理论到实践(Chapter6:非线性优化)

前言 学习笔记&#xff0c;仅供学习&#xff0c;不做商用&#xff0c;如有侵权&#xff0c;联系我删除即可 一、目标 理解最小二乘法的含义和处理方式。理解高斯牛 顿法(Gauss-Newtons method)、列文伯格一马夸尔特方法(Levenburg-Marquadts method)等下降策略。学习Ceres库…

如何彻底搞懂装饰器(Decorator)设计模式?

对于任何一个软件系统而言&#xff0c;往现有对象中添加新功能是一种不可避免的实现场景&#xff0c;但这一实现过程对现有系统的影响可大可小。从架构设计上讲&#xff0c;我们也知道存在一个开闭原则&#xff08;Open-Closed Principle&#xff0c;OCP&#xff09;&#xff0…