【Docker】Docker常用命令(包含Dockerfile指令)

news2024/11/16 22:44:58

目录

  • 一.Docker常用命令
    • 1.帮助命令
    • 2.镜像命令
    • 3.容器命令
    • 4.其他常用命令
    • 5.更多更详细命令
  • 二.Dockerfile常用指令
    • 1.常用指令
    • 2.CMD 和 ENTRYPOINT 的区别

一.Docker常用命令

1.帮助命令

# docker version       //查看docker版本号
# docker info          //查看docker的系统信息,包含镜像和容器的数量
# docker 命令 --help   //帮助命令

2.镜像命令

  • 显示镜像
# docker images        //显示所有本地主机上的镜像
# docker images -a     //显示所有镜像
# docker images -q     //只显示镜像id

在这里插入图片描述

  • 搜索镜像
# docker search 镜像名                         //搜索镜像
# docker search mysql                         //搜索mysql镜像
# docker search mysql -filter=STARS=2000      //搜索mysql收藏大于2000的镜像

在这里插入图片描述

  • 下载镜像
  • 注意:版本号不能乱写,要在dockerhup搜索上面有的版本。
# docker pull 镜像名                         //下载最新版本镜像
# docker pull 镜像名:版本号                   //指定版本下载

  • 删除镜像

注意:有的镜像不能直接删除,因为有通过他创建的容器,要先删除容器。

# docker rmi 镜像id或镜像仓库名                         //删除指定镜像
# docker rmi 镜像id或镜像仓库名 $(docker images -aq)    //删除全部镜像

  • 构建镜像

注意:必须在你的 Dockerfile 文件目录下执行该命令,不在的话就加 -f

# docker build [可选参数]        //下载最新版本镜像
可选参数功能
-f指定Dockerfile文件路径
-t指定构建的镜像名和tag ,例:# docker build -t 镜像名:tag

3.容器命令

前提:有镜像才可以创建容器

  • 创建并启动容器
# docker run [可选参数] 镜像名           //创建并启动容器
# docker run -it 镜像名 /bin/bash     	//启动并进入容器
可选参数作用
–name自定义容器名字 例:–name 定义的容器名字
-d以后台方式启动
-it使用交互方式启动,进入容器查看内容
-p指定容器端口,例:-p 8090:8080(8090是对外端口,8080是容器端口)
-P随机端口
-v挂载目录,双向绑定。
docker容器内的卷,没有指定主机目录情况下都在 /var/lib/docker/volume/xxx/-data
指定路径挂载:-v 主机目录 容器目录
匿名挂载:-v 容器目录
具名挂载:-v 自定卷名:容器卷
# docker volume ls               //查看所有的挂载卷(匿名挂载是一串乱码,而具名挂载是你自定义的名字)

# docker run -d -P --name nginx001 -v /etc/nginx nginx //匿名挂载

在这里插入图片描述


默认是rw(可读可写)

# docker run -d -P --name nginx001 -v ikun:/etc/nginx:ro nginx //具名挂载(ro只针对容器,只可读)
# docker run -d -P --name nginx001 -v ikun:/etc/nginx:rw nginx //具名挂载(rw在容器内既可读又可写)

在这里插入图片描述

# docker volume inspect 卷名 //查看这个卷

在这里插入图片描述



  • 查看容器
# docker ps      //显示正在运行的容器
# docker ps -a   //显示全部的容器
# docker ps -q   //只显示容器id            

  • 退出容器
# exit     	  //容器停止并退出
ctrl + p + q  //退出容器并不停止

  • 删除容器
# docker rm 容器id      	   //删除指定容器,不能删除正在运行的容器
# docker rm -f 容器id          //强制删除包含正在运行的容器	
# docker rm $(docker ps -aq)   //删除全部容器

  • 启动和停止容器
# docker start 容器id      	   //启动容器
# docker restart 容器id        //重启容器
# docker stop 容器id           //停止当前正在运行的容器
# docker kill 容器id           //强制停止当前容器	

4.其他常用命令

  • 查看日志
# docker logs 容器id      	   //查看容器日志
  • 查看容器进程信息
# docker top 容器id      	   //查看容器进程信息
  • 查看容器的元数据
# docker inspect 镜像id      	   //查看容器的元数据
  • 进入正在运行的容器
# docker exec -it 容器id /bin/bash      	   //进入正在运行的容器(开启一个新的终端)
# docker attach 容器id            	           //进入正在运行的容器(不开启一个新的终端)
  • 从容器内拷贝文件到主机
# docker cp 容器id:容器内路径 目的主机路径      	   //查看容器日志

5.更多更详细命令

https://www.runoob.com/docker/docker-build-command.html

二.Dockerfile常用指令

1.常用指令

 - FROM           //基础镜像
 - MAINTAINER     //镜像的维护者 姓名 + 邮箱
 - RUN            //镜像构建时执行的命令
 - ADD            //添加内容
 - WORKDIR        //设置当前工作目录
 - VOLUME         //设置挂载目录(可以将容器目录挂载到主机上,实现同步)
 - EXPOSE         //指定对外端口
 - CMD            //指定这个容器启动的时候要运行的命令(只有最后一个会生效,可被替代)
 - ENTRYPOINT     //指定这个容器启动的时候要运行的命令(可以追加)
 - COPY           //将我们的文件拷贝到镜像中
 - ENV            //构建的时候设置环境变量

2.CMD 和 ENTRYPOINT 的区别

构建镜像的时候使用 CMD 指令

在这里插入图片描述
在这里插入图片描述


构建镜像的时候使用 ENTRYPPOINT 指令

在这里插入图片描述
在这里插入图片描述

相信你们从上面的图片就能看出差别了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/55628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

外贸员的日常工作分享

外贸人米贸搜的日常工作流程为你整理如下。希望能帮到你: 外贸业务员的职责 一、业务人员在向国外买家询价前,要了解客户的基本信息,包括是否是终端客户,年采购量,消费区域,产品的用途,规格,质…

(附源码)SSM座位管理系统 毕业设计 250858

基于SSM的座位管理系统 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于学校的各种信息管理也是十分常见的。过去使用手工的管理方式对高校教室座位进行管理,造成了管理繁琐、难以维护等问题,如今使用…

python的opencv使用总结

作为最容易上手之一的语言,python拥有着大量的第三方库,这些第三方库的存在使得很多人可以专注于业务逻辑、数学逻辑而忽略繁琐的代码操作,python的opencv第三方库就是其中之一。 一、第三方库的安装和简单使用 安装 简单的pip安装就可以了…

【雷达波位编排】基于matlab相控阵雷达的波位编排仿真【含Matlab源码 2251期】

⛄一、相控阵雷达最优波位编排策略仿真算法 1 波位编排的最优化 相控阵雷达的扫描空域一般在修正球坐标系下进行指定,它的坐标原点为雷达站,雷达阵面法线在水平面的投影作为方位角的零度,顺时针为正,逆时针为负,有效取值范围为[-π/2,π/2],以水平面作为俯仰角的零度,向上为正…

分享5款2023年不容错过的宝藏软件

今天带来五款宝藏软件,身为宝藏男孩和宝藏女孩的你们,不试一下吗? 1.EPUB阅读器——Starrea Starrea 是一款Windows平台的EPUB电子书阅读器,它虽然只支持一个平台,但是提供了很多额外的功能,其中包括 文…

MySQL学习笔记(十)crash-safe 和两段提交

crash-safe CrashSafe指MySQL服务器宕机重启后,能够保证: 所有已经提交的事务的数据仍然存在。所有没有提交的事务的数据自动回滚。 如果MySQL宕机了,重启后,就需要检查redolog 日志文件里面,系统会自动定位到上次c…

Jmeter插件duang duang duang 学会模拟各种场景

为什么要使用jmeter线程组插件呢? jmeter自带的线程组插件模拟的压测场景非常有限,当需要模拟复杂压测场景的时候, 推荐大家使用jmeter线程组插件。 如何下载jmeter线程组插件呢? 早期版本的jmeter可以针对我们需要的扩展功能&…

解决远程连接 docker中mysql 失败

在docker安装好mysql之后 端口也设置好,同时云服务器的端口3306也打开。但是使用navicat 连接不上。 其实是因为Navicat只支持旧版本的加密,需要更改mysql的加密规则 进入MySQL容器,登陆MySQL docker exec -it mysql /bin/bash 登陆mysql** mysql -u root -p 输入密…

炫龙T6-E7A2电脑如何U盘重装系统解决系统故障教学

炫龙T6-E7A2电脑如何U盘重装系统解决系统故障教学。对于一些比较严重的系统故障问题来说,普通用户很难去进行问题的解决。比如系统故障导致无法开机,普通用户无法自己解决问题,这个时候可以通过U盘重装系统的方法来解决,这个方法还…

深入URP之Shader篇2: 目录结构和Unlit Shader分析[上]

Unity和URP版本 我使用的Unity版本为2020.3.33f1,对应的URP和SRP Core版本为10.8.1。阅读URP源码建议把package从Library/PackageCache中拷贝到Packages目录,也就是自定义package的方式,然后推荐使用VS code打开工程,这样可以很方…

Golang【Web 入门】 08 集成 Gorilla Mux

阅读目录集成 Gorilla Mux为什么不选择 HttpRouter?安装 gorilla/mux使用 gorilla/mux迁移到 Gorilla Mux1. 新增 homeHandler2. 指定 Methods () 来区分请求方法3. 请求路径参数和正则匹配4. 命名路由与链接生成集成 Gorilla Mux 我们将选用 gorilla/mux 来作为 g…

CSS页面布局(超详解)

目录 1 CSS页面布局概述 1.1 概述 1.2 网页栏目划分 1.3 元素类型转化 1.3.1 块元素 1.3.2 行内元素 1.3.2 块元素和行内元素的转换 1.4 定位 1.4.1 静态定位 1.4.2 相对定位 1.4.3 绝对定位 1.4.4 固定定位 1.4.5 定位元索的层叠次序 1.5 浮动 1.5.1 概述 1.5…

JAVA中如何精确取到时间

文章目录0 写在前面1 使用方法2 举例3 写在最后0 写在前面 做业务的时候,总要统计数据,几月份到几月份的全部数据。这个时候就要找到起始月份的具体时间和终止月份的具体时间。 此时我们用原始的Date类去处理就比较麻烦,可以自己写一个工具类…

Web3中文|什么是以太坊虚拟机(EVM),它是如何工作的?

来源 | cointelegraph 编译 | DaliiNFTnews.com 以太坊已成为仅次于比特币的第二重要区块链。以太坊能发展得这么好,它的原生Solidity编程语言和以太坊虚拟机(EVM)发挥了重要的作用。 以太坊区块链凭借自身拥有的灵活性、大量可用的开发工…

MySQL高级SQL语句

一.准备 mysql -uroot -p123123create database train_ticket; #创建库use train_ticket; create table REGION(region varchar(10),site varchar(20)); create table FARE(site varchar(20),money int(10),date varchar(15)); #创建表desc REGION; desc FARE; #查看表结构ins…

[附源码]计算机毕业设计云南美食管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

浅析linux内核网络协议栈--linux bridge(二)

6. 网桥数据转发 6.1 网桥数据包入口 网桥是一种2层网络互连设备,而不是一种网络协议。它在协议结构上并没有占有一席之地,因此不能通过向协议栈注册协议的方式来申请网桥数据包的处理。相 反,网桥接口(如上述的eth1&#xff09…

mysql—MHA原理与实现

官方介绍:https://code.google.com/p/mysql-master-ha/ MySQL复制集群中的master故障时,MHA按如下步骤进行故障转移: 从上图可总结MHA工作步骤为: -从宕机崩溃的master保存二进制日志事件(binlogevents)。 -识别含有最新更新的s…

macOS Electron 环境安装时的错误 Cannot find module ‘macos-alias‘ 解决

macOS Electron 环境安装时的错误 Cannot find module ‘macos-alias’ 解决 一、问题描述 在想 make 并发布软件版本的时候,现出这个错误: ❯ Making distributables✖ Making a dmg distributable for darwin/arm64› Cannot find module macos-ali…

SSM处理过程

SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层 使用spring MVC负责请求的转发和视图管理 spring实现业务对象管理&#xf…