Docker的学习记录

news2024/11/27 12:57:39

Docker是一个被广泛使用的开源容器引擎,基于Go语言,遵从Apache2.0协议开源。

docker的三个概念:容器、镜像和仓库。

  • 镜像(Image):镜像是Docker中的一个模板。通过 Docker镜像 来创建 Docker容器,一个镜像可以创建出多个容器。 镜像是由一系列指令一步一步构建出来
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

docker安装

安装相关系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

// 添加yum源

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

// 更新yum缓存

sudo yum makecache fast

// 安装

sudo yum -y install docker-ce

// 启动,查看,停止

sudo systemctl start docker

systemctl status docker

systemctl stop docker

查看docker版本

docker -v

// 查看docker操作命令

docker

修改docker数据目录

有时候需要将Docker的数据目录统一到某个目录中,默认的地址为/var/lib/docker,则需要配置data-root属性修改到对应目录,具体操作步骤如下:

## 查看当前目录 
docker info |grep Dir 
 
## 创建数据目录 
mkdir -p /opt/docker/data 
## 创建配置文件 
touch /etc/docker/daemon.json 
## 修改配置文件 
vim /etc/docker/daemon.json 
## 在文件中添加以下内容并保存
 { 
    "data-root": "/opt/docker/data"
 } 
 
## 重启Docker 
service docker restart 
 
## 查看修改后的目录是否为变更的目录 
docker info |grep Dir
 


从仓库获取镜像

搜索镜像:docker search image_name
搜索结果过滤:
是否是官方:
docker search --filter "is-official=true" image_name
是否是自动化构建
docker search --filter "is-automated=true" image_name
大于多少颗星
docker search --filter stars=3 image_name
下载镜像:docker pull image_name
本地镜像的查看:docker images
本地镜像的删除:docker rmi image_name

查看镜像的信息 docker inspect  mysql

如下,分别是镜像的名字,标签,id,创建时间和大小。

容器的操作

容器的创建、查看、停止、重启 

1.创建容器:docker run -itd --name=container_name image_name
-i 表示以交互模式运行容器;
-d 表示后台运行容器,并返回容器ID;
-t 为容器重新分配一个伪输入终端;
--name 为容器指定名称

2.查看容器(运行中的):docker ps
3.查看容器(包括已停止的):docker ps -a
4.停止容器:docker stop container_name/container_id
5.启动容器:docker start container_name/container_id
6.重启容器:docker restart container_name/container_id
7.删除容器:docker rm container_name/container_id

容器的修改及保存

1.进入容器:docker exec -it container_name/container_id /bin/bash
2.退出容器:exit
3.提交修改:
docker commit -a "author" -m "message" container_name/container_id new_image_name:tag_name

参数说明

-a:参数可选,用于指定作者,可以写你的名字
-m:参数可选,提交信息,可以说一下你做了哪些修改
container_id:该参数为被修改的容器ID
new_image_name:此为新镜像的名字,可自定义
tag_name:此为新镜像的标签,可不写,不写时标签默认为latest

容器的端口映射

docker run -itd  --name container_name -p 宿主机端口号:容器端口号  image_name

例如:docker run -itd --name nginx  -p 8081:80 nginx

文件挂载

docker run -itd -v /宿主机/文件目录:/容器/目录

将容器的文件复制到本地

docker cp 容器名:/容器目录/文件名 /宿主机目录/文件名

将本地的文件复制到容器
docker cp /宿主机目录/文件名 容器名:/容器目录/文件名

PS:文件挂载很重要,比如mysql数据库的容器数据很重要,通过文件挂载,可以使得容器的数据也保存在本地中。

容器互联

docker run -itd --link 要关联的容器名字:容器在被关联的容器中的别名

Dockerfile

Dockerfile就是名为Dockerfile的文件,文件中包含一些Linux命令,Docker通过读取文件中的命令来组建镜像。


Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,# 为 Dockerfile 中的注释。

运行Dockerfile
docker build -t image_name:tag_name .

也可以通过-f参数来指定Dockerfile文件位置
docker build -f /path/Dockerfile .

docker安装mysql

docker search mysql

docker pull mysql

然后查看docker images

 docker inspect  mysql  查看mysql的持久化目录

docker run -itd --name=mysql -p 3306:3306  -v /home/mysql/docker_mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password  mysql

参考课程:

Docker从入门到实战应用 - 网易云课堂

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

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

相关文章

四川玖璨公司抖音收费多少?

首先,从公司背景来看,四川玖璨电子商务有限公司是一家专注于电子商务领域的公司,经验丰富且有一支优秀的团队。作为一家专业的抖音培训公司,他们推出的抖音培训项目肯定是建立在自己经验与实践的基础上,并且对市场的变…

SpringBoot2.x整合Jedis客户端详细过程

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Sp…

dependencies

这个dependencies 软件显示dll的functions有的时候不全。 他本来可以看function。但是有时构造体的自动生成的构造函数是没有的。 这个dll在生成lib里面其实会有自动生成的构造函数。

selenium自动化测试-获取网页截图

今天学习下使用selenium自动化测试工具获取网页截图。 1,如果是简单获取当前屏幕截图只需要使用方法: driver.get_screenshot_as_file(screenshot.png) 2,如果想获取完整网页长宽的截图需要设置参数后使用该方法: 首先打开驱动方…

提升科研效率的关键:掌握3D科研绘图技能【文末送书】

提升科研效率的关键:掌握3D科研绘图技能 引言3D科研绘图的重要性和应用领域 3D科研绘图基础3D科研绘图的定义和重要性3D科研绘图的基本概念和技术 书籍简介书籍亮点核心内容内容简介作者简介 购买链接参与方式往期赠书回顾 引言 3D科研绘图的重要性和应用领域 3D科…

Ant-Design-Pro-V5 :ProTable自定义搜索菜单操作栏和搜索事件、列表工具栏操作。

import React, { useRef, useState, useEffect } from react; import { Button, Form } from antd; import { PageContainer, ProTable} from ant-design/pro-components; const Demo () > { const beforeSearchSubmit (params) > {//par 就是你搜索表单输入的内容 } co…

3D科研绘图与学术图表绘制:从入门到精通

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 3D科研绘图和学术图表绘…

运行时内存分配

目录 一、程序计数器 二、虚拟机栈 3、本地方法栈 4、Java堆(Heap) 5、方法区 很多人将 JAVA 内存分为堆内存(Heap)和栈内存(Stack),这种划分方式在一定程度上体现这两块区域是 Java 工程师最关注的内存区域。但是这种划分方式并不完全正确&#xf…

AttributeError: ‘Prophet‘ object has no attribute ‘stan_backend‘解决方案

在使用Facebook prophet过程遇到如下问题: 代码如下: from prophet import Prophet model Prophet()执行程序报如下错误: File "D:\Python\Python38\lib\site-packages\prophet\forecaster.py", line 156, in _load_stan_backend…

如何构建基于大模型的App

ChatGPT 的出现让大模型再一次成为业界的关注热点,然而,并不是每个组织都要去训练及生成大模型的,而且各个组织的技术积累和计算资源也不太允许这样去做。更多的时候, 我们还是基于大模型开发业务应用。所谓智能原生(A…

Spring MVC 入门指南

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

Windows系统利用cpolar内网穿透搭建Zblog博客网站并实现公网访问内网!

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员,自己搭建网站制作网页是绕…

使用github创建个人页面,以及git的两种使用方式

目录 前言记录如何使用vs code提交代码 一、个人页面的创建二、Git的使用1.Git的工作原理2. 如何使用VS Code同步代码到远程仓库参考3. 如何在github网页上提交更新 前言 本篇主要介绍两个干货:1、如何利用github创建个人页面,对于学者范儿的从业人员可…

【已解决】windows10误删环境变量Path

【已解决】windows10误删环境变量Path 1.问题描述 进行python环境配置时,误删Path全部环境变量 2.解决原理及操作 图形化界面修改Path:同步到注册表,立即生效,已打开的cmd不会生效cmd命令修改Path:同步到注册表&am…

报错处理:Java休眠时在CPU上运行

大家好,今天我来分享一个我在运维过程中遇到的问题,关于Linux上Tomcat启动时出现的“Java休眠时在CPU上运行”的报错,以及如何解决这个问题的。 首先,让我们来看看这个报错信息。当你在启动Tomcat时,如果你看到类似的错…

SpringMVC 学习(四)RestFul 风格

5. RestFul 风格 5.1 简介 概念 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 功能 资源:互联网所有的事物都可以被抽象为…

【冰糖R语言】创建R包(打包R程序)

目标:将现有R程序打包 可能涉及知识点:devtools包、usethis包、Rstudio软件 一、R包的类型 通常一个R包中包含以下元素: 1)R文件夹:函数代码 2)man文件夹:存放每个函数的注释文件 3&#x…

千万别把工作 当成天大的事

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 工作不是我们的“主业”,人生才是。K哥一位前同事的遭遇,让我对这句话有了更深的感受。这位前同事,是某大厂高管,由于长期作息不规律和巨大工作压力&…

C++:线上课程2_12(多态和虚函数)

文章目录 一、多态1.多态定义2.多态分类2.1编译时的多态2.2运行时的多态 二、虚函数1.定义2.成员函数与虚函数3.为什么构造函数(移动构造函数,拷贝构造函数)不可以定义为虚函数?4.示例5.对象和指针和引用调用6.虚表分配7.this指针…