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 - CommunityVersion:           25.0.3API version:       1.39 (downgraded from 1.44)Go version:        go1.21.6Git commit:        4debf41Built:             Tue Feb  6 21:17:10 2024OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          18.09.1API version:      1.39 (minimum version 1.12)Go version:       go1.10.6Git commit:       4c52b90Built:            Wed Jan  9 19:06:30 2019OS/Arch:          linux/amd64Experimental:     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-storeLogin 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         

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

07 系统的线性时不变特性

各位看官,大家好!本讲为《数字信号处理理论篇》07 系统的线性时不变特性。(特别提示:课程内容为由浅入深的特性,而且前后对照,不要跳跃观看,请按照文章或视频顺序进行观看。 从本讲开始开始为大…

python | Python 中检查一个数字是否是三态数

本文来源公众号“python”,仅用于学术分享,侵权删,干货满满。 原文链接:Python 中检查一个数字是否是三态数 在数学中,三态数(Triangular Number)是一种特殊的数列,它是由自然数按…

O2O:Online Decision Transformer(ODT)

ICML 2022 paper Introduction 利用Transformer对强化学习进行序列建模在离线强化学习中展露头角,但是无法避免的是这种方法受限于离线数据的质量,因此本文将其结合到online的在线微调过程,进而形成本文ODT。为了解决从offline到online过程…

Pandas基础介绍

文章目录 Pandas简介什么是Pandas?Pandas数据结构Pandas 应用 Pandas简介 什么是Pandas? Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处…

android开发者工具,最新整理

一 Java相关 1.重载函数的签名(区别是否是重载函数) 答:方法名参数类型参数顺序(返回值不是) 2.finalize的工作原理 答:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中&#…

Hololens 2应用开发系列(3)——MRTK基础知识及配置文件配置(中)

Hololens 2应用开发系列(3)——MRTK基础知识及配置文件配置(中) 一、前言二、输入系统2.1 MRTK输入系统介绍2.2 输入数据提供者(Input Data Providers)2.3 输入动作(Input Actions)2…

做分析用什么工具

做分析用什么工具 导读 数据分析是数据辅助决策的最后一公里,是最终的数据可视化展示与探索分析的部分,选择使用最适合的数据展示方式,可以帮助分析人员大大提升分析效率。 问题: ● 纠结选择哪个工具 ● 纠结从哪里学起&#x…

Vue.js的双向绑定原理

Vue的双向绑定 vue双向绑定是其最重要的核心亮点,其原理也很简单,这里做个简单总结 vue2的双向绑定是利用的Object.definePropertyvue3的双向绑定是利用的 ES6Porxy中的defineProperty(target, propKey, propDesc 其作用类似于Object.defineProperty …

tomcat下载安装配置教程

tomcat下载安装配置教程 我是使用tomcat下载安装及配置教程_tomcat安装-CSDN博客 此贴来进行安装配置,原文21年已经有些许不同。 下载tomcat 官网:http://tomcat.apache.org/ 我们老师让安装8.5以上,所以我直接选择版本9 点击9页面之后…

GEE入门篇|图像分类(一):监督分类

在遥感中,图像分类是尝试将图像中的所有像素分类为有限数量的标记土地覆盖和/或土地利用类别。 生成的分类图像是从原始图像导出的简化专题图(图 1), 土地覆盖和土地利用信息对于许多环境和社会经济应用至关重要,包括自…

相机类型的分辨率长宽、靶面尺寸大小、像元大小汇总

镜头的靶面尺寸大于等于相机靶面尺寸。 相机的芯片长这样,绿色反光部分(我的手忽略): 基本所有像素的相机的靶面大小都可以在这个表格里面找到。 镜头的靶面尺寸在镜头外表上可以找到,选型很重要!

从零开始手写RPC框架(5)

继续上一节的内容,解析代码。 目录 编码器注册中心负载均衡策略动态代理屏蔽网络传输细节通过spring注解注册/消费服务 编码器 参考LengthFieldBasedFrameDecoder解码器的协议,在协议里规定传输哪些类型的数据, 以及每一种类型的数据应该占多…