Docker容器化解决方案

 什么是Docker?

    Docker是一个构建在LXC之上,基于进程容器的轻量级VM解决方案,实现了一种应用程序级别的资源隔离及配额。Docker起源于PaaS提供商dotCloud 基于go语言开发,遵从Apache2.0开源协议。

    Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。

    简单的理解,Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响。也就是说,Docker平台就是一个软件集装箱化平台,这就意味着我们自己可以构建应用程序,将其依赖关系一起打包到一个容器中,然后这容器就很容易运送到其他的机器上进行运行,而且非常易于装载、复制、移除,非常适合软件弹性架构。

为什么要使用Docker

性能上比VM好

一台牛X的服务器,VMWare中启动10个虚拟机,基本上就不能再做其他事情了,大部分CPU和内存资源都耗费在VM内的OS了。而Docker将APP直接放在OS上面,省了大量内存和CPU资源占用,但在效果(沙箱)上与虚拟机完全一致

重复使用、隔离应用

1、根据特定的开发需求,生成一个标准的开发和测试环境,比如机构库的开发,我们需要的环境包括:JDK + Postgresql + tomcat + Nginx + ...

   当我们新来一个开发或者测试人员,我们根据对应的环境,生成一个属于这个开发/测试人员的虚拟机(暂且如此称呼吧),编译部署代码,测试系统都隔离在自身负责的范围

2、对于系统平台部分,数据库和平台部分,安装在一个环境中,然后我们开发的不同模块都连接到这个虚拟机中公开的接口上,这样,这个环境对我们开发产生积极的影响,核心部分隔离了,应用开发不用再繁琐的部署平台的其他部分了,及保证了核心代码安全,又可以让开发人员专注自身业务而不用管平台底层部分。

Docker熟识

Docker部署及配置
  • 安装docker工具

$ cd /etc/yum.repos.d
$ wget https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
$ sed -i 's#download.docker.com#mirrors.ustc.edu.cn/docker-ce#g' docker-ce.repo
$ yum -y install docker-ce
$ systemctl enable --now docker.service
  • 启动第一个容器
$ docker container run -itd -p 8080:80 nginx:1.21
Unable to find image 'nginx:1.21' locally
1.21: Pulling from library/nginx
1fe172e4850f: Pull complete
35c195f487df: Pull complete
213b9b16f495: Pull complete
a8172d9e19b9: Pull complete
f5eee2cb2150: Pull complete
93e404ba8667: Pull complete
Digest: sha256:859ab6768a6f26a79bc42b231664111317d095a4f04e4b6fe79ce37b3d199097
Status: Downloaded newer image for nginx:1.21
28a074f14de734d565b61d49f8dd1fd005a7da696b381ec3514fe89449ae96b3
  • 配置镜像加速器
$ vim /etc/docker/daemon.json
{
	"registry-mirrors": ["https://registry.docker-cn.com"]
}

$ systemctl daemon-reload
$ systemctl restart docker.service
Docker基本指令
  • 查看docker版本

[root@localhost ~]# docker version
Client: Docker Engine - Community
 Version:           25.0.3
 API version:       1.39 (downgraded from 1.44)
 Go version:        go1.21.6
 Git commit:        4debf41
 Built:             Tue Feb  6 21:17:10 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          18.09.1
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       4c52b90
  Built:            Wed Jan  9 19:06:30 2019
  OS/Arch:          linux/amd64
  Experimental:     false
  • 基础资源查看
docker container ls
CONTAINER ID   IMAGE        COMMAND                  CREATED              STATUS          PORTS                                   NAMES
31bdb0575074   nginx:1.21   "/docker-entrypoint.…"   About a minute ago   Up 58 seconds   0.0.0.0:8080->80/tcp, :::8080->80/tcp   romantic_elion

$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        1.21      fa5269854a5e   12 days ago   142MB

$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
47ea72ec86c9   bridge    bridge    local
af2d08d73c78   host      host      local
166d963f62c8   none      null      local

$ docker volume ls
DRIVER    VOLUME NAME
  • 登录远程仓库, 获取拉镜像的权限
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: hlions
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded


$ docker logout
Removing login credentials for https://index.docker.io/v1/
  • 搜索镜像
[root@localhost ~]# docker search nginx
NAME                               DESCRIPTION                                     STARS     OFFICIAL
nginx                              Official build of Nginx.                        19668     [OK]
unit                               Official build of NGINX Unit: Universal Web …   24        [OK]
nginx/nginx-ingress                NGINX and  NGINX Plus Ingress Controllers fo…   88        
nginxinc/nginx-unprivileged        Unprivileged NGINX Dockerfiles                  141       
nginx/nginx-prometheus-exporter    NGINX Prometheus Exporter for NGINX and NGIN…   38        
nginxinc/nginx-s3-gateway          Authenticating and caching gateway based on …   6         
nginx/unit                         This repository is retired, use the Docker o…   64        
nginx/nginx-ingress-operator       NGINX Ingress Operator for NGINX and NGINX P…   2         
nginxinc/amplify-agent             NGINX Amplify Agent docker repository           1         
nginx/nginx-quic-qns               NGINX QUIC interop                              1         
nginxinc/ingress-demo              Ingress Demo                                    4         
nginxproxy/nginx-proxy             Automated nginx proxy for Docker containers …   132       
nginxproxy/acme-companion          Automated ACME SSL certificate generation fo…   130       
bitnami/nginx                      Bitnami nginx Docker Image                      183       
bitnami/nginx-ingress-controller   Bitnami Docker Image for NGINX Ingress Contr…   32        
ubuntu/nginx                       Nginx, a high-performance reverse proxy & we…   112       
nginxinc/nginmesh_proxy_debug                                                      0         
nginxproxy/docker-gen              Generate files from docker container meta-da…   16        
nginxinc/mra-fakes3                                                                0         
kasmweb/nginx                      An Nginx image based off nginx:alpine and in…   7         
rancher/nginx-ingress-controller                                                   12        
nginxinc/nginmesh_proxy_init                                                       0         
nginxinc/mra_python_base                                                           0         
nginxinc/ngx-rust-tool                                                             0         

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

qnx display

05-SA8155 QNX Display框架及代码分析(1)_openwfd-CSDN博客 backlight p: 0 t: 0 00000 SHD -----ONLINE----- 2024/03/06 13:49:22.046 backlight p:1060958 t: 1 00000 ERR backlight_be[backlight_be.c:284]: pthread_create enter 2024/03/06 13…

时钟显示 html JavaScript

sf.html <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>时间</title><script>function showTime(){var timenew Date();var datetime.getDate();var yeartime.getFullYear();var monthtime.getMonth()1;var …

指针乐园----上

大家好&#xff0c;我是Beilef&#xff0c;许久未见还请多多关照。 文章目录 目录 文章目录 前言 一、指针是什么 二、指针的运用 1.指针变量和地址 2.指针变量和解引⽤操作符&#xff08;*&#xff09; 解引用操作符 3.指针变量类型及意义 3.2指针的-整数 3.3 void* 指针 …

css-解决Flex布局下居中溢出滚动截断问题

css-解决Flex布局下居中溢出滚动截断问题 1.出现的问题2.解决方法2.1 Flex 布局下关键字 safe、unsafe2.2 使用 margin: auto 替代 justify-content: center2.3 额外嵌套一层 1.出现的问题 在页面布局中&#xff0c;我们经常会遇到/使用列表内容水平居中于容器中&#xff0c;一…

linux系统上安装docker 并配置国内镜像

目录 1.安装docker 2.配置国内镜像源 1.安装docker 首先要安装一个yum工具 yum install -y yum-utils 安装成功后&#xff0c;执行命令&#xff0c;配置Docker的yum源&#xff1a; yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo …

AI加速“应用现代化”,金融核心系统转型正当时

数字经济时代&#xff0c;金融机构需要快速感知客户需求&#xff0c;提升产品供给的敏捷度&#xff0c;才能在白热化的竞争环境中抢占先机&#xff0c;而无论是金融机构还是方案提供商&#xff0c;都需要深入思考核心系统现代化的内涵&#xff0c;携手迈出应用现代化的重要一步…

MySQL 核心模块揭秘 | 08 期 | 二阶段提交 (2) commit 阶段

这篇文章是二阶段提交的 commit 子阶段的前奏&#xff0c;聊聊 commit 子阶段相关的一些概念。 作者&#xff1a;操盛春&#xff0c;爱可生技术专家&#xff0c;公众号『一树一溪』作者&#xff0c;专注于研究 MySQL 和 OceanBase 源码。 爱可生开源社区出品&#xff0c;原创内…

几种电脑提示mfc140.dll丢失的解决方法,以及如何预防mfc140.dll丢失

mfc140.dll真是一个超级关键的动态链接库文件&#xff01;一旦这个文件不翼而飞&#xff0c;可能会导致一些程序无法顺利运行&#xff0c;甚至给系统带来麻烦。但别担心&#xff01;遇到mfc140.dll文件丢失的情况&#xff0c;我们有一堆应对措施可以立马施行&#xff0c;确保问…

掌握Pillow:Python图像处理的艺术

掌握Pillow&#xff1a;Python图像处理的艺术 引言Python与图像处理的概述Pillow库基础导入Pillow库基本概念图像的打开、保存和显示 图像操作基础图像的剪裁图像的旋转和缩放色彩转换和滤镜应用文字和图形的绘制 高级图像处理图像的合成与蒙版操作像素级操作与图像增强复杂图形…

【北京迅为】《iTOP-3588开发板网络环境配置手册》第3章 开发板直连电脑配置方法(不能上外网)

RK3588是一款低功耗、高性能的处理器&#xff0c;适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用&#xff0c;RK3588支持8K视频编解码&#xff0c;内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

python_读取txt文件绘制多条曲线III

先把文件中指定列&#xff0c;去重提取出来&#xff0c;然后根据指定列去匹配数据&#xff0c;最后完成多条数据的绘图&#xff1b; import matplotlib.pyplot as plt import re from datetime import datetime from pylab import mplmpl.rcParams["font.sans-serif"…

Rust入门:GCC或VS2019中的c或c++程序如何调用Rust静态库

首先创建一个rust的库&#xff0c;这里我假设命名为c-to-rust1 cargo new --lib c-to-rust1 其中&#xff0c;src/lib.rs的内容如下&#xff0c; #[no_mangle] pub extern "C" fn get_string() -> *const u8 {b"Hello C World\0".as_ptr() }注解 …

解决微信好友添加频繁问题

今天我们来聊一聊微信好友添加频繁的问题。在日常使用中&#xff0c;有时候我们会遇到一些添加好友受限的情况&#xff0c;那么究竟是什么原因导致了这一问题呢&#xff1f;接下来&#xff0c;让我们逐一来看一看。 1. 添加好友的频率太高 首先&#xff0c;如果我们在短时间内…

中小企业如何降低网络攻击和数据泄露的风险?

德迅云安全收集了Bleeping Computer 网站消息&#xff0c; Arctic Wolf 表示 Akira 勒索软件组织的攻击目标瞄准了中小型企业&#xff0c;自 2023 年 3 月以来&#xff0c;该团伙成功入侵了多家组织&#xff0c;索要的赎金从 20 万美元到 400 多万美元不等&#xff0c;如果受害…

猴子吃桃:玩转二分思维

前言 在计算机编程领域&#xff0c;算法是解决问题的有效途径之一。而算法题则是考察程序员解决问题能力的重要手段之一。在这篇文章中&#xff0c;我们将通过一个经典的算法题目——猴子吃桃&#xff0c;来探讨算法思维的重要性以及解题的方法。 题目描述 孙悟空喜欢吃蟠桃…

企业计算机服务器中了devos勒索病毒怎么解密,devos勒索病毒解密流程

现在&#xff0c;很多企业都依赖网络计算机的力量开展各项工作业务&#xff0c;为企业的生产运营提供了极大便利&#xff0c;但网络也会搜集存储各个用户的信息便于统计分析&#xff0c;从而导致了企业的数据安全也会受到很大影响。近日&#xff0c;云天数据恢复中心接到多家企…

【阅读笔记】最通俗易懂的 transformer 笔记

这里写目录标题 前言第 1 节 N 元文法语言模型1.2、平滑&#xff08;Smoothing&#xff09;1.2.1、加 1 平滑 / 拉普拉斯平滑&#xff08;Add-One Smoothing / Laplace Smoothing&#xff09;1.2.2、 δ \delta δ 平滑&#xff08;Add-K Smoothing / Delta Smoothing&#xf…

Xilinx高级调试方法--远程调试

Xilinx高级调试方法--远程调试 1 虚拟电缆调试2 FPGA设计2.1 扩展配置接口 3 PCIe-XVC驱动3.1 PCIe-XVC驱动3.2 XVC-Server 4 Vivado Design Suite4.1 同一台主机4.2 不同主机 本文主要介绍Xilinx的一些高级调试方法&#xff0c;以及如何使用Xilinx的相关IP。 1 虚拟电缆调试 …

CAN通信篇 - CanSM模块配置(五)

文章目录 CanSMConfigurationCanSMManagerNetworkCanSMGeneralCanSMGeneration总结Can State Manager (CanSM)模块,是CAN网络的状态管理模块,所有对CAN网络状态的请求都是通过CanSM实现。这里我们介绍一下在Davinci Configurator中CanSM模块的配置。 在CanSM模块的总线管理…

游泳耳机哪个牌子好?四大热卖游泳耳机汇总,年度首选

在当今日益注重健康生活方式的时代&#xff0c;游泳作为一项全身性的有氧运动备受青睐。然而&#xff0c;对于许多游泳爱好者来说&#xff0c;水下世界的孤独可能会让他们感到无聊。而游泳耳机的出现不仅为游泳者带来了音乐的陪伴&#xff0c;还让他们能够在水下畅享各种声音&a…