首页 > 其他分享 >Docker详解

Docker详解

时间:2024-09-20 21:50:03浏览次数:10  
标签:容器 仓库 sudo 详解 镜像 Docker docker

一、概念

Docker是一个开源的容器化平台,它可以使我们避免部署对服务器环境的依赖,减少复杂的部署流程。它允许开发者将应用程序及其依赖项打包到一个轻量级,可移植的容器中,然后在任何支持Docker的环境中运行。Docker的出现极大地简化了应用程序的部署和管理,使得开发、测试和生产环境的一致性得到了显著提升。

二、Docker的核心概念

2.1、容器(Container)

定义:容器时Docker的基本运行单元,它是一个轻量级的、独立的、可执行的软件包,包含运行应用程序所需的一切:代码、运行时、系统工具、系统库等。

特点

       隔离性:容器之间互相隔离,每个容器运行在自己的环境中。

       轻量级:容器共享主机系统的内核,因此比虚拟机更轻量。

       可移植性:容器可以在任何支持Docker的环境中运行,确保了环境的一致性。

2.2、镜像(Image)

定义:镜像是容器的模板,它包含了创建容器所需的所有文件和配置。镜像是只读的,一旦创建就不能修改。

特点

       分层储存:镜像采用分层储存机制,每一层代表一个文件系统的变化。

       可重用性:镜像可以被多个容器共享,减少了储存空间的占用。

       版本控制:镜像可以通过标签(Tag)进行版本控制,方便管理和回滚。

2.3、仓库(Repository)

定义:仓库是储存和分发镜像的地方。Docker Hub是Docker官方的公共仓库,用户也可以创建私有仓库。

特点

       公共仓库:Docker Hub提供了大量的公共镜像,用户可以直接使用。(大多数公共仓库都是国外仓库,通常都是下载资源速度慢,一般会用其镜像或私有仓库)。

       私有仓库:用户可以搭建私有仓库(俗称:私服),用于储存和管理内部使用的镜像。

2.4、Dockerfile

定义:Dockerfile是一个文本文件,包含了一系列指令,用于自动化构建Docker镜像。

实例

FROM ubuntu:20.04
RUN apt-get update && apt-get install -y nginx
COPY index.html /var/www/html/
CMD ["nginx", "-g", "daemon off;"]

三、创建Docker的示例

//docker run这是 Docker 命令,用于创建并运行一个新的容器,-d 参数表示容器将在后台运行。
docker run -d \ 
//--name 参数用于指定容器的名称。
--name mysql \
//-p 参数用于指定端口映射(将主机的 3306 端口映射到容器的 3306 端口)。
-p 3306:3306 \
//-e 参数用于设置环境变量(这里设置了 TZ 环境变量为 Asia/Shanghai,即设置容器的时区为上海时间)。
-e TZ=Asia/Shanghai \
//-e 参数用于设置环境变量(这里设置了 MYSQL_ROOT_PASSWORD 环境变量为 123,即设置 MySQL 的 root 用户密码为 123)。
-e MYSQL_ROOT_PASSWORD=123 \
//这是要运行的 Docker 镜像的名称(里使用的是官方的 MySQL 镜像,Docker 会从 Docker Hub 拉取最新的 MySQL 镜像并运行)。
mysql

四、Docker常见命令介绍

 五、Docker的基本操作

在 Linux 系统上,可以使用以下命令安装 Docker(sudo的功能是让普通用户以超级管理员的身份执行,可以不带):

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

 启动 Docker 服务

sudo systemctl start docker

设置 Docker 服务开机自启:

sduo systemctl enable docker

Docker容器开机自启

sudo docker update --restart=always [容器名/容器id]

给常用Docker命令起别名

# 修改/root/.bashrc文件
vi /root/.bashrc

标签:容器,仓库,sudo,详解,镜像,Docker,docker
From: https://blog.csdn.net/weixin_70171141/article/details/142398785

相关文章

  • openEuler22.03 LTS 离线安装 docker docker-compose
    本文转载自:https://blog.csdn.net/qq_33994039/article/details/140890728其中有几处我这里不能用的地方,标注一下章节5.1:openeuler启动命令:dockerrun-itd--nameopeneuler--privileged=trueopeneuler/openeuler:22.03-lts章节5.2:他那的docker-ce.repo用不了,可以改为......
  • 求Huffman树及其matlab程序详解
    #################本文为学习《图论算法及其MATLAB实现》的学习笔记#################算法用途求Haffman树算法思想根据定理4.17,给出求Huffman树的算法步骤如下:①对给出的所要求的叶子顶点的权进行从小到大排序,写出的权重向量 ;②根据定理4.17,写出兄弟的权重分别为......
  • 【Webpack】三种模式详解
    文章目录一、Webpack模式概述1.模式的作用2.配置模式二、开发模式(development)1.开发模式的特点开发模式的主要特点包括:2.开发模式的配置3.开发模式的实际应用三、生产模式(production)1.生产模式的特点生产模式的主要特点包括:2.生产模式的配置3.生产模式的实......
  • 一文详解Unity下RTMP推送|轻量级RTSP服务|RTSP|RTMP播放模块说明
    技术背景好多开发者,对Unity下的模块,不甚了解,实际上,除了Windows/Linux/Android/iOSNativeSDK,大牛直播SDK发布了Unity环境下的RTMP推流|轻量级RTSP服务(Windows平台+Linux平台+Android平台)和RTMP|RTSP直播播放(Windows、Linux、Android和iOS平台全覆盖)低延迟的解决方案。目前,大牛直播......
  • 编程基础:常量、变量与字面量详解
    摘要:文章介绍了编程基础:变量可变,常量不变,字面量是初始赋值。我们在学习编程的时候,经常听到这3个词:常量变量字面量那么它们是什么意思呢?我们写2行代码,来帮助我们理解。inta=666;constintb=777;变量在第1行代码中,a是变量,666是字面量。或者我们可以说,变量a的初始值是......
  • 【Webpack】处理CSS资源详解
    文章目录一、Webpack处理CSS的基本概念1.Webpack中的CSS处理2.`Loader`的作用二、配置Webpack处理CSS资源1.基本配置2.使用`MiniCssExtractPlugin`提取CSS3.处理Sass或Less等预处理器4.使用PostCSS处理CSS三、CSSModules的使用1.CSSModules概述2.配置CSSMo......
  • 产品设计详解 - AxureMost
    产品设计详解-AxureMost产品设计详解-AxureMost产品设计的可用性影响着用户体验,在交互过程中,除了可用性外,用户还会经历一种更加微妙的纯主观的心理和情感体验,这种体验难以表达和度量,却极大地影响了用户体验。本章从可用性、心流、沉浸感、情感和美感5个方面来介绍对......
  • 实现NAS远程下载,Docker部署qBittorrent、Transmission、贝锐花生壳
    与电脑不同,NAS通常都是7*24小时不间断运行,这使得下载资源变得更加便捷,解决了bt、pt下载需要长时间在线、挂机的问题。所以,对于许多选择品牌NAS或自行搭建NAS系统的用户而言,像qBittorrent、Transmission这样的下载管理工具早已成为不可或缺的必备应用。除了可以通过NAS自带的应用中......
  • 一个好用的docker容器管理后台Portainer
    一个好用的docker容器管理后台Portainerdocker源更换阿里云(仅支持阿里云用户使用具备公网访问能力的阿里云产品进行镜像加速)网上找到的—参考链接sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json<<-'EOF'{"registry-mirrors":["https:......
  • selenium定位详解
    css定位一、css中的id定位(1)id简写定位(#)fromseleniumimportwebdriverfromtimeimport*dx=webdriver.Chrome()dx.get("https://www.baidu.com/")dx.find_element_by_css_selector("#kw").send_keys("css中id简写定位#")(2)id全称定位fromsel......