Docker【docker使用】

news/2024/6/2 20:24:37 标签: docker, 容器, 运维

文章目录

  • 前言
  • 一、概念
  • 二、常用方法
  • 三、镜像与镜像的关系,以及镜像构建和管理


前言

上一篇文章讲了docker的安装,本片文章我们来聊聊docker的一些常用操作。以及镜像、容器之间的关系
如果你想更加系统的学习docker,请看【docker入门与实战】

一、概念

docker三大核心概念:镜像 Image、容器 Container、仓库 Repository

  • 镜像:
    • Docker 镜像,就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器
    • 镜像容器,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器镜像运行时的实体。
    • 容器可以被创建、启动、停止、删除、暂停等。
    • 基于镜像可以创建容器,同一个镜像可以创建多个容器
    • 基于容器也可以创建镜像
  • 仓库:
    • 用来保存镜像镜像存放在仓库中,可以从仓库中拉取或者推送镜像仓库

二、常用方法

1.镜像

配置好仓库后可以在docker阿里云镜像仓库下载需要的镜像,像mysql nginx
例如:mysql

docker pull mysql;
docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql; #初次启动要设置mysql初始密码 -d表示后台运行,否则你的终端就无法继续操作了
命令描述案例
pull拉取镜像docker pull mysql #默认拉取最新镜像
docker pull mysql:8.0.28 # 拉取指定版本镜像
search搜索镜像docker search mysql
tagcopy镜像并重命名,源镜像仍然存在
如果镜像没有镜像名,也可以通过镜像id进行更改名称
docker tag mysql mysql2
images查看本地已存在的镜像信息docker images mysql # 指定镜像
docker images #所有镜像
docker images | grep mysql # 配合管道符使用
rmi删除镜像|镜像idrmi mysql
build基于dockerfile构建镜像 docker build -t 镜像名:tag url
url:指定Docker构建上下文的路径,它决定dockerfile中COPY、ADD执行的相对路径,一般都是进入dockerfile文件的同级目录后,然后设置为.
docker build -t image1:1.0.0 .

docker不能直接查看远程仓库中某个镜像的所有可用版本。但是有两个操作可以实现它

  • 1直接进入镜像仓库管理界面,这里只列举两个

    • 官方:https://hub-stage.docker.com/_/nginx/tags
    • 阿里:https://cr.console.aliyun.com/cn-hangzhou/instances/artifact。阿里的容器镜像服务是每个人都不同的,你需要登录进入
      在这里插入图片描述

  • 2 拉取镜像的所有可用版本。虽然这个命令会直接下载所有可用版本,比较耗费资源,时间也比较长。

    docker pull --all-tags [IMAGE_NAME]
    

  • 3 使用manifest inspect命令,他会打印出镜像在仓库中的清单

    docker manifest inspect library/nginx
    

    它是一个试验性的命令,如果你无法使用,则需要配置开启manifest

    vi ~/.docker/config.json
    # 添加以下内容
    {
      "experimental": "enabled"
    }
    

2.容器

容器是通过依据image创建的运行实例,把image看成class,容器就相当于class new的实例对象。一个镜像可以create出多个容器
通过exec命令进入容器后可以通过两种方式退出容器

  • 1.exit:退出容器,并保持容器运行
  • 2 ctrl + P Q:退出容器,返回到主机命令窗口
命令描述案例
createdocker create (–name=容器名) 镜像名docker create --name=mybusybox busybox
run运行容器,run = pull + create + start 相当于运行三个命令docker run -d mybusybox # -d:后台运行
exec…-it…sh | /bin/bash进入容器内部 -t:表示打开一个伪终端;-i :即使没有附加也保持STDIN 打开
在命令的最后加一个sh/bin/bash来启动一个交互式shell
/bin/bash:功能更强 sh:兼容性更好
docker exec -it mybusybox sh
start启动容器docker start mybusybox
restart重启容器docker restart mybusybox
stop停止容器docker stop mybusybox
rm删除容器docker rm mybusybox
commit基于已有容器构建镜像
ps查看容器状态:docker ps -a:查看所有容器docker ps -l:查看最近操作的容器docker pa -a
logs查看容器日志:docker logs 容器名:查看指定容器的运行日志docker logs -f 容器名:实时查看指定容器的运行日志docker logs -f mysql

容器在操作容器时,一些比较有用的参数

命令说明
--name指定容器名称:–name=容器名–name 容器
-d后台运行
-p映射端口,宿主机端口:容器端口,例如:-p 3307:3306
-v挂载目录到本地,宿主机目录:容器目录,例如:-v /usr/local/nginx:/usr/local/nginx
--restart自动重启,例如:–restart=always,跟随docker服务的重启而重启

三、镜像与镜像的关系,以及镜像构建和管理

镜像构建以及管理的内容比较多,本文的目的是记录镜像和容器的各种操作,所以单独把这一块放到这一篇文章。


http://www.niftyadmin.cn/n/5445131.html

相关文章

2024年全国职业院校技能大赛中职组大数据应用与服务赛项题库参考答案陆续更新中,敬请期待…

2024年全国职业院校技能大赛中职组大数据应用与服务赛项题库参考答案陆续更新中,敬请期待… 武汉唯众智创科技有限公司 2024 年 3 月 联系人:辜渝傧13037102709 题号:试题04 ZZ052-大数据应用与服务赛选赛题04 模块一:平台搭建…

项目管理五大过程:规划引领,组织协同,实施精进,控制精准,完美收官——卓越项目管理的全程解析

一、引言 在快节奏的现代商业环境中,项目管理已经成为推动企业发展的重要引擎。项目管理大师哈罗德科兹纳曾言:“项目管理不仅仅是关于完成任务的工具,它更是一种战略武器,能够帮助企业获得竞争优势。”本文将围绕项目管理的五大过…

前端视角如何理解“时间复杂度O(n)”

定义 时间复杂度是O(n) 意味着算法的执行时间与输入数据的大小成正比。 这里的n表示输入数据的数量。 假设有一个数组,需要遍历这个数组并打印出每个元素的值。 这个操作的时间复杂度就是O(n),因为你需要执行n次操作,其中n是数组的长度。 …

整型溢出问题及解决之道

【题目描述】 例题2-2 3n+1问题 猜想:对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半。 经过若干次这样的变换,一定会使n变为1。例如,3→10→5→16→8→4→2→…

【教程】深入探究 JS代码混淆与加密技术

🔒 引言 在网络世界中,保护代码安全是至关重要的一环。JS代码混淆与加密技术则成为了开发者们常用的手段之一。本文将深入探讨混淆和加密的概念,以及其实现原理和应用方法,帮助读者更好地了解并运用这些技术。 ✨ 概念介绍 &quo…

提升交付效率:Booking.com 金融技术团队的成功实践

Booking.com 金融技术业务部门的团队对其平台的后端和前端实施了一系列改进措施,并通过 DORA 指标将交付性能提高了一倍。此外,还使用了微前端 (MFE) 模式,将单体 FE 应用程序分解为多个可单独部署的分解应用程序。 2022 年年中,B…

C++代码中goto的作用讲解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、标签作用域二、使用1.普通用法2.跳出循环3.跳入语句 三、注意1.初始化错误2.异常错误 总结 前言 goto语句在大多数由程序员直接完成的高级程序设计任务中都…

postgresql查看数据库占用空间大小

在PostgreSQL中,查看数据库及数据表当前数据的占用量可以通过执行特定的SQL查询来实现。以下是几种常用的方法: 1.查看单个数据表的占用空间大小: 使用pg_size_pretty和pg_total_relation_size函数可以获取特定数据表的占用空间大小&#xf…