当前位置: 首页 > news >正文

Docker-命令

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、Docker架构
  • 二、Docker进程相关命令
    • (一)启动 docker 服务
    • (二)重启 docker 服务
    • (三)停止 docker 服务
    • (四)查看 docker 服务状态
    • (五)设置开机启动 docker 服务
  • 三、Docker 镜像相关命令
    • (一)查看镜像
    • (二)搜索镜像
    • (三)拉取镜像
    • (四)删除镜像
    • (五)保存镜像
    • (六)加载镜像
  • 四、Docker 容器相关命令
    • (一)查看容器
    • (二)查看容器日志
    • (三)启动容器
    • (四)停止容器
    • (五)删除容器
    • (六)进入容器内部
    • (七)退出容器内部
  • 五、Docker-Compose命令
    • (一)启动服务
    • (二)停止服务
    • (三)构建服务
    • (四)查看服务日志
    • (五)查看正在运行的服务
    • (六)删除所有服务容器
  • 总结


前言

提示:详细内容查看黑马程序员教程:

• Docker 是一个开源的应用容器引擎
• 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)
• Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器上。
• 容器是完全使用沙箱机制,相互隔离
• 容器性能开销极低。
• Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)


提示:重点理解docker架构。特别是镜像、容器概念

一、Docker架构

镜像(Image):Docker镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统

容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等

仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像

在这里插入图片描述

二、Docker进程相关命令

(一)启动 docker 服务

systemctl start docker

(二)重启 docker 服务

systemctl restart docker

(三)停止 docker 服务

systemctl stop docker

(四)查看 docker 服务状态

systemctl status docker

(五)设置开机启动 docker 服务

systemctl enable docker

三、Docker 镜像相关命令

(一)查看镜像

查看本地所有镜像

docker images
docker images -q #查看所有镜像的id

各个选项说明:
REPOSITORY: 表示镜像的仓库源
TAG : 镜像的标签
IMAGE ID : 镜像ID
CREATED : 镜像创建时间
SIZE : 镜像大小

(二)搜索镜像

从网络中查找需要的镜像

docker search 镜像名称

例如:查询mysql 镜像

docker search mysql

(三)拉取镜像

docker pull 镜像名称
docker pull mysql #拉取mysql镜像,没指定版本号,默认最新版本镜像

(四)删除镜像

删除本地镜像

docker rmi 镜像id
docker rmi -f 镜像名/镜像ID#批量删除镜像
docker rmi $(docker images -aq)
docker rmi 'docker images -aq'

(五)保存镜像

在/root 目录下有个test文件,将mysql的镜像文件打包成tar包保存

docker save -o [保存路径/镜像文件名].tar [镜像名]:[标签]

在/root 目录下有个test文件,将mysql的镜像文件打包成tar包保存

docker save -o /root/test/mysql.tar mysql:latest

(六)加载镜像

docker load -i [镜像文件名].tar

将上述的mysql.tar镜像文件包,加载成镜像

docker load -i mysql.tar

四、Docker 容器相关命令

(一)查看容器

1、查看正在运行的容器

docker ps 

2、查看所有的容器
正在运行的容器和已停止运行的容器

docker ps -a

3、查看最近运行的两个

docker ps -a -n=2

4、查看正在运行的容器的id

docker ps -q

5、查看所有容器的id

docker ps -aq

6、查看容器内部进程

docker top <容器id或名称> bash

7、与容器内部进行交互

docker exec -it <容器id或名称> bash

8、查询最后一次创建的容器

docker ps -l

(二)查看容器日志

1、查看容器运行日志

docker logs <容器id或名称>

2、实时展示容器日志

docker logs -f <容器id或名称>

3、加入时间戳展示日志

docker logs -tf <容器id或名称>

4、查看最后n行日志

docker logs --tail 5 <容器id或名称>

(三)启动容器

1、docker 启动一个容器

docker run -it <镜像名称> /bin/bash
docker run -it ubuntu /bin/bash  #启动ubuntu镜像
参数说明:
-i:交互式操作
-t:终端

2、启动已停止运行的容器

docker start <容器id>

3、重启一个容器

docker restart <容器id>

4、启动容器并将容器挂载后台运行

docker run -itd --name ubuntu-test ubuntu /bin/bash ##启动一个ubuntu容器
参数说明:
-d:默认不会进入容器

5、启动容器映射端口号,后台启动,指定容器名称

docker run -p 8080:8080 --name 容器名称 -d 镜像名称:版本号

(四)停止容器

1、停止

docker stop <容器名称或者容器id>

2、杀死一个容器

docker kill <容器名称或者容器id>

3、停止全部容器

docker stop $(docker ps -a -q)

(五)删除容器

docker rm <容器id或者名称>
docker rm -f <容器id或者名称>
docker rm -f $(docker ps -aq) #删除全部容器

(六)进入容器内部

1、进入容器后,退出容器,容器停止

docker attach <容器id>

2、进入容器后,退出容器,不会导致容器停止

docker exec <容器id>
docker exec <容器id> /bin/bash

(七)退出容器内部

exit

再加上一份图,展示命令使用过程
在这里插入图片描述

五、Docker-Compose命令

(一)启动服务

docker-compose up
启动服务,服务在后台运行
docker-compose up -d

(二)停止服务

docker-compose down

(三)构建服务

docker-compose build

(四)查看服务日志

docker-compose logs# 实时跟踪日志
docker-compose logs -f

(五)查看正在运行的服务

docker-compose ps

(六)删除所有服务容器

docker-compose down --volumes

总结

以上就是我们安装docker后会经常使用的命令,然后就是理解 镜像 、容器和服务三者之间的关系。至于仓库很好理解,就是存放镜像的地址,仓库分为官方公共镜像仓库和私有镜像仓库,私有镜像仓库需要身份认证后才能拉取镜像文件。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Tomcat初篇
  • Java 网络编程练习
  • 新天龙八部3江山策仿官方+单机联网+GM工具
  • 【抓包】- Fiddler抓包教程,使用Fiddle抓取B站视频;ffmpeg的使用方法
  • Eureka入门指南:微服务注册与发现的基础概念
  • 软件开发感悟
  • go注册到eureka微服务
  • 构建AI知识库:4大优势+无限可能,共绘在线教育蓝图!
  • 【代码随想录算法训练营第42期 第七天 | LeetCode454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和】
  • 【Python快速入门和实践012】Python常用脚本-目标检测之查看数据集标签类别及对应数量
  • Python爬虫使用实例
  • 人脸操作:从检测到识别的全景指南
  • 精彩回顾 | 风丘科技亮相2024名古屋汽车工程博览会
  • 【C++】STL——list
  • ubuntu使用gParted给sda1分区扩展分区
  • 30秒的PHP代码片段(1)数组 - Array
  • es6--symbol
  • HTTP那些事
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • magento 货币换算
  • MySQL几个简单SQL的优化
  • 百度小程序遇到的问题
  • 程序员最讨厌的9句话,你可有补充?
  • 七牛云假注销小指南
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 我的业余项目总结
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 再次简单明了总结flex布局,一看就懂...
  • 国内开源镜像站点
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ‌移动管家手机智能控制汽车系统
  • (04)odoo视图操作
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (30)数组元素和与数字和的绝对差
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot教学评价 毕业设计 641310
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)Linq学习笔记
  • (转)Unity3DUnity3D在android下调试
  • (转)winform之ListView
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET 5种线程安全集合
  • .net 7 上传文件踩坑
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET WPF 抖动动画
  • .NET开源项目介绍及资源推荐:数据持久层
  • /proc/vmstat 详解
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [16/N]论得趣
  • [2024-06]-[大模型]-[Ollama] 0-相关命令