首页 > 其他分享 >Docker容器应用场景分析

Docker容器应用场景分析

时间:2023-04-17 10:12:15浏览次数:31  
标签:容器 场景 src 27017 nodejs usr Docker

Docker容器是一个开源的应用容器引擎,它能够自动执行重复性任务,例如搭建和配置开发环境,用户可以方便地创建和使用容器,还可以进行版本管理、复制、分享、修改。有很多初学云计算的同学不清楚Docker容器的使用方法以及应用场景,接下来就给大家简单分享一下云计算学习路线图素材课件:Docker容器应用场景分析。

Docker是一个使用 Go 语言开发的,并且开源的应用容器引擎,基于LXC(Linux Container)内核虚拟化技术实现,提供一系列更强的功能,比如镜像、Dockerfile等;

Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版的Docker引擎上,使用沙箱机制运行程序,程序之间相互隔离;

Docker采用C/S架构,Dcoker daemon作为服务端接受来自客户端请求,并处理这些请求,比如创建、运行容器等;客户端为用户提供一系列指令与Docker Daemon交互;

Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup、namespace以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。目前Docker容器的应用场景包括以下几种:

Docker部署Mongodb环境

1、远程获取Mongodb镜像

docker pull mongo

2、创建一个docker容器

docker run -p 27017:27017 -v /data/db --name docker_mongodb -d mongo

在上面的命令中,几个命令参数的详细解释如下:

-p 指定容器的端口映射(特殊说明:前面的是本机端口,后面的是容器的端口,添加-p参数主动将容器内部端口给暴漏出来,将服务器的27017端口映射到容器的27017端口,这样在外网就可通过 服务器的27017端口访问到我们的服务,Mongodb默认端口为27017。

-v 为设置容器的挂载目录,这里是将即本机中的目录挂载到容器中的/data/db中,作为Mongodb的存储目录

--name 为设置该容器的名称

-d 设置容器以守护进程方式运行

3、测试连接容器中的Mongodb

Docker部署Node项目完整流程(DockerFile实践)

1、使用Koa2初始化一个Node项目,通过Mongose中间件连接Mogodb数据库,实现一个基础接口Mogodb插入数据。

2、在项目根目录下创建.dockerignore文件,把不需要打包进Docker Image里的文件进行过滤:

/usr/src/nodejs/dockerstudy/.dockerignore

.git

node_modules

3、在项目的根目录中创建Dockerfile文件,部署Node项目的时候,会有一个Dockerfile 文件配置。

/usr/src/nodejs/hello-docker/Dockerfile

FROM node:10.0

在容器中创建一个目录

RUN mkdir -p /usr/src/nodejs/

定位到容器的工作目录

WORKDIR /usr/src/nodejs/

RUN/COPY 是分层的,package.json 提前,只要没修改,就不会重新安装包

COPY package.json /usr/src/app/package.json

RUN cd /usr/src/app/

RUN npm i

把当前目录下的所有文件拷贝到 Image 的 /usr/src/nodejs/ 目录下

COPY . /usr/src/nodejs/

EXPOSE 3000

CMD npm start

4、代码环节暂且告一段落,将带有Dockerfile提交到github或gitlab等。

5、首先检出代码,把项目克隆到指定目录。

6、进入目录构建。

7、通过镜像dockerstudy创建一个容器并运行。

8、进入容器。

9、日志检查查看运行日志。

优雅部署方式 DockerCompose

Compose是Docker官方开源的一个项目,可以管理多个Docker容器组成一个应用,例如Web服务,除了服务本身还有数据库、Redis、Nginx等一系列相关联服务需要安装。有个Compose的支持,我们只需要定义一个YAML格式的配置文件(docker-compose.yml),来编写一个项目所需要的多个容器配置及调用关系,通过简单的命令即可同时开始或者关闭这些容器。Compose定位是定义和运行多个Docker容器的应用。

标签:容器,场景,src,27017,nodejs,usr,Docker
From: https://www.cnblogs.com/qian-fen/p/17324910.html

相关文章

  • [云计算]Openstack中对象环、容器环、账户环的作用
    Swift中的环(Rings)是一种用于对象存储的分布式哈希表结构。环包含了一个元素列表和一个哈希函数,用于将一个对象ID映射到环上的一个元素位置,以便找到该对象在Swift中的存储位置。Swift中包含了三种类型的环,分别是对象环、容器环和账户环,下面是它们各自的作用:对象环对象环是用于定......
  • 通过 docker-compose 快速部署 gitlab
    目录一、概述二、gitlab架构原理三、前期准备1)部署docker2)部署docker-compose四、直接通过docker部署gitlab五、通过docker-compose部署gitlab1)下载gitlab镜像2)docker-compose文件配置3)执行部署4)解读gitlabDockerfile文件六、gitlab操作(拉取和提交代码)1)配置ssh秘......
  • 玩转RuoYi-Cloud-Plus-3.Docker 搭建 MySQL8.0
    3.Docker搭建MySQL8.0 1、docker仓库搜索mysqldockersearchmysql2、docker仓库拉取mysql8.0dockerpullmysql:8.0备注:dockerpullmysql//默认拉取最新版本3、查看本地仓库镜像是否下载成功dockerimagesmysql:8.04、安装运行mysql8.0......
  • 玩转RuoYi-Cloud-Plus-2.安装Docker-ce
    2.安装Docker-ce一、删除之前安装的docker(若之前未安装过,此步骤省略…)进入centos根目录执行以下命令(\是linux系统种命令换行符,如果命令过长,可以用\来换行)yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logr......
  • docker常用命令总结
    docker常用命令总结目录docker常用命令总结重要命令总结(1)批量操作(2)dockerhelp镜像2、dockerpull3、dockerimages/dockerimagels4、dockerinspect$image_ID/$docker_ID/$网络5、dockerrmi容器1、dockerps2、dockerrun3、dockerexec4、dockerattach5、dockerstop6......
  • docker-compose gitea、drone
    version:"3"services:gitea:image:gitea/gitea:latestcontainer_name:giteaenvironment:-USER_UID=1000-USER_GID=1000restart:alwaysvolumes:-/gitea:/data-/etc/timezone:/etc/timezone:ro-/etc/localtime:/etc/localtime:roports:-"......
  • docker
    docker安装1.移除以前docker相关包#sudoyumremovedocker\ docker-client\ docker-client-latest\ docker-common\ docker-latest\ docker-latest-logrotate\ docker-logrotate\ docker-engine2.配置yum源#sudoyuminstall-......
  • ubuntu 安装docker/添加镜像
    ubantu安装dockersudoaptinstallcurlcurl-fsSLhttps://test.docker.com-otest-docker.shsudoshtest-docker.sh安装完后提示没有权限,是登陆用户没有加入到docker权限组中permissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run......
  • docker网络模式
    Docker有4种网络模式(--network=)bridge默认模式,分配networknamespace和IP,连接到docker0网桥上。host使用主机IP,不分配networknamespace和IP,和宿主机共用networknamespace。container和已存在的某个容器共享networknamespace,不分配IP。k8s的业务容器采用Docker的container网......
  • flannel容器IP
    docker没有分配IPcni0网桥相当于docker0网桥,veth对有一个会加在上面。查看cni0网桥的端口对应3个Pod根据网络接口序号来查找veth另一端,veth对的两端mac地址不同docker0上没有端口......