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

【5分钟学Docker】Docker快速使用

目录

1. 概述

2. 基本操作

2.1. 镜像操作

2.2. 容器操作

2.3. 运行操作

2.4. 镜像保存

2.5. 镜像分享

3. 高级操作

4. 挂载

4.1. 目录挂载

4.2. 卷映射


1. 概述

Docker 镜像有镜像名称和TAG

2. 基本操作

2.1. 镜像操作

  1. 查看镜像
docker images 
docker image ls
  1. 删除镜像
docker rmi imagesID
docker rmi 名称:TAG
  1. 下载镜像
docker pull nginx:1.26.0
  1. 搜索镜像
docker search nginx

2.2. 容器操作

容器是运行起来的镜像

  1. 运行容器
docker run
  1. 查看运行的容器
docker ps
  1. 停止/启动/重启
docker stop/start/restart CONTAINER_ID
docker stop/start/restart NAMES
  1. 进入镜像
docker exec -it xxxxxNAMES /bin/bash
  1. 查看日志
# 动态获取
docker logs -f 
# 静态查看
docker logs
  1. 删除
docker rm ID
# 强制删除
docker rm -f ID

2.3. 运行操作

  1. 容器的端口可以重复,但是外部机器的端口不能重复
docker run -p <主机端口>:<容器端口> <镜像名>
docker run -d --name mynginx -p 88:80 ngxin:TAG
-d: 后台运行
--name:容器名称
-p 端口映射: 80:88 内部80 外部访问88
  1. 进入容器进行操作
docker exec -it <容器名称> 交换脚本
docker exec -it mynginx /bin/bash

2.4. 镜像保存

  1. 通过docker run 运行后,进行自定义安装或者修改一些配置
  2. 然后提交修改内容:这里的mynginx是一个运行的容器
docker commit -m 'update index.thml' mynginx  mynginx:V1.0[root@sda ~]# docker commit -m 'update index.html' mynginx mynginx:V1.0
sha256:6d11a54e6725515d5559bf96fa6aeeda4b1daf79887eb78e6c3befeaadad27a0
  1. 提交后,通过docker images 可以看到有镜像 myginx V1.0

  1. 然后在对镜像进行保存成tar便于转移到其他机器上
docker save -o mynginx.tar mynginx:V1.0
  1. 加载镜像
 docker load -i mynginx.tar  -q-i 加载tar的文件-q 表示加载过程中不展示加载信息
  1. 运行
 docker run --name mynginx --rm -d -p 89:80 mynginx:V1.0
  1. 查看容器的占用
docker statsCONTAINER ID        NAME                               CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
9b54842016a0        mynginx                            0.00%               10.33MiB / 31.26GiB   0.03%               2.73kB / 2.05kB     0B / 0B             17
e2b4c27dbe59        work_nginx-server_1                0.00%               78.02MiB / 31.26GiB   0.24%               32.7GB / 32.5GB     7MB / 0B            17

2.5. 镜像分享

# 改名
docker tag 旧名字 新名字 # 这个会复制一个新的,而不是直接改,可以把之前的删除就行了
docker tag mynginx:V1.0 mynginx:V2.0[root@sda ~]# docker images
REPOSITORY   TAG    IMAGE ID            CREATED             SIZE
mynginx      V1.0   6d11a54e6725        15 hours ago        192MB
mynginx      V2.0   6d11a54e6725        15 hours ago        192MB

3. 高级操作

  1. 查询所有的容器的ID
docker ps -aq
-a : 所有的镜像
-q : 只打印容器ID[root@sda ~]# docker ps -aq
9b54842016a0
e2b4c27dbe59
694eeba1ae38
975bb0ad0124
0c0f3ddc3b79
  1. 删除所有的容器
docker rm -f $(docker ps -aq)
-f:强制删除
  1. 开机启动
docker --restart always

4. 挂载

4.1. 目录挂载

容器一旦重启或者重新创建,那么文件数据都是丢失,所以这个时候需要通过挂载目录,实现数据持久化

使用参数

-v /aa/aaa:/aaaa/bbb
-v 主机目录:容器内目录
如果一开始没有/aa/aaa 那么他会自动创建。docker会以外部的数据为准,所以外部没有数据
那么内部也是没有数据的

4.2. 卷映射

当我们通过目录挂载时,会发现因为-v是以外部为主,所以当我们使用目录挂载,比如挂载容器的内部的默认配置文件时,会出现如果外部没有这些配置文件,那么就会导致出现内部也没有,那么容器就可能会启动失败,所以这个时候就需要用到卷映射

卷映射

-v 卷名:/etc/nginx
卷名不以./ 为名称就是卷名,否是就是目录挂载
docker run -d -p 89:80 --name mynginx -v /tmp/nginx/html:/usr/share/nginx/html -v ngconfig:/etc/nginx mynginx:V2.0

卷的数据都在哪里呢:默认都在/var/lib/docker/volumes/卷名/_data下

[root@sda html]# cd /var/lib/docker/volumes/ngconfig/
[root@sda ngconfig]# ls
_data
[root@sda ngconfig]# cd _data/
[root@sda ngconfig]# ls
conf.d  fastcgi_params  mime.types  modules  nginx.conf  scgi_params  uwsgi_params
[root@sda _data]# pwd
/var/lib/docker/volumes/ngconfig/_data
  1. 卷操作
1. 查看卷
docker volume ls 
2. 创建卷
docker volume create test
3. 查看某个卷的详情
docker volume inpspect test

文章转载自:
http://buff.sxnf.com.cn
http://abbacy.sxnf.com.cn
http://australasian.sxnf.com.cn
http://artistry.sxnf.com.cn
http://ankylose.sxnf.com.cn
http://antaeus.sxnf.com.cn
http://bojardo.sxnf.com.cn
http://cameleer.sxnf.com.cn
http://bedpost.sxnf.com.cn
http://caste.sxnf.com.cn
http://billiardist.sxnf.com.cn
http://backsight.sxnf.com.cn
http://cafetorium.sxnf.com.cn
http://baaroque.sxnf.com.cn
http://avens.sxnf.com.cn
http://bestiary.sxnf.com.cn
http://bugger.sxnf.com.cn
http://arala.sxnf.com.cn
http://chirm.sxnf.com.cn
http://achromatize.sxnf.com.cn
http://bondservice.sxnf.com.cn
http://apogamous.sxnf.com.cn
http://abundant.sxnf.com.cn
http://chemigrapher.sxnf.com.cn
http://casework.sxnf.com.cn
http://biowarfare.sxnf.com.cn
http://archoplasm.sxnf.com.cn
http://bun.sxnf.com.cn
http://carve.sxnf.com.cn
http://cannily.sxnf.com.cn
http://www.dtcms.com/a/180463.html

相关文章:

  • 计算机网络:深度解析基于链路状态的内部网关协议IS-IS
  • springmvc实现文件上传
  • 为什么消息队列系统不像数据库系统那样可以配置读写分离?
  • 【css】css统一设置变量
  • 03 mysql 连接
  • Linux 内核中的 security_sk_free:安全模块与 Socket 释放机制解析
  • 掌握单元测试:提升软件质量的关键步骤
  • MySQL + Elasticsearch:为什么要使用ES,使用场景与架构设计详解
  • idea spring boot 打包成可执行的 JAR包
  • SpringBoot默认并发处理(Tomcat)、项目限流详解
  • .NET高频技术点(持续更新中)
  • 软件确认报告:审查功能、评估标准及推动软件稳定高效运行
  • 【图片识别内容改名】图片指定区域OCR识别并自动重命名,批量提取图片指定内容并重命名,基于WPF和阿里云OCR识别的解决
  • 【OpenAI】Updating your OpenAI library to the latest version
  • MySQL高可用方案全攻略:选型指南与AI运维实践
  • Linux——Mysql数据库操作
  • keepalived详细笔记
  • 【react组件】矩形框选小组件,鼠标左键选中 div,键盘 ESC 清空
  • Transformer编码器+SHAP分析,模型可解释创新表达!
  • 开源AI对比--dify、n8n
  • 云原生环境下服务治理体系的构建与落地实践
  • 【计算机视觉】OpenCV实战项目: Fire-Smoke-Dataset:基于OpenCV的早期火灾检测项目深度解析
  • 使用Python和OpenCV实现实时人脸检测与识别
  • 【软件测试】测试用例的概念与常见测试的模型
  • 电商平台如何做好DDoS 攻防战?
  • 【Java基础】——JVM
  • 如何获取NumPy数组中前N个最大值的索引
  • SSL证书格式详解:PEM、CER、DER、JKS、PKCS12等
  • 【C++设计模式之Template Method Pattern】
  • 蓝桥杯青少 图形化编程(Scratch)编程题每日一练——图形特效