首页 >>  正文

docker多个容器

来源:baiyundou.net   日期:2024-09-23

作者:他们都叫我老宁

前言

有很多小伙伴听说过了Docker,也都用过,其实群晖Container Manager就是基于Docker容器的,群晖只是把做成了一个套件,方便普通用户运行、管理Docker容器,而不需要复杂专业的Docker知识。今天来简单聊聊Docker,读了这篇文章后,一定会对群晖Container Manager有更深的了解和全新的认识

Docker是什么

Docker,在开发人员中耳熟能详,它是一种开源的应用容器引擎,它可以将你的程序和依赖环境一起打包存放,构成一个全功能、独立的个体,并运行在系统上,每个体之间互不影响,也就是常说的docker容器

可能有人会问Docker和虚拟机有什么区别?Docker是直接运行在宿主机平台的操作系统层上,并与系统内核直接对话。所以它比虚拟机更轻量级,启动速度也更快,但对于隔离性要求不如虚拟机严格,而虚拟机则是在物理硬件和虚拟的操作系统之间添加了一层虚拟化的平台,所以虚拟机可以运行完全独立的操作系统,但相对的,其复杂性、资源消耗和启动时间都会更大

Docker能干什么

讲了Docker是什么之后,接下来看看它能做什么。Docker可以帮你把想要运行的程序和所有需要的环境打包成一个行李箱,就是常说的Docker容器。可以把这个箱子带到任何地方,无论是哪台电脑还是云端,只要打开这个行李箱,就可以直接运行了,这就是Docker的魔力,"Build once, run anywhere",一次打包,随处运行!

群晖Container Manager和Docker的关系

知道了Docker的概念,再来理解Container Manager就比较简单了,简单来说,群晖的Container Manager就像是Docker的管理者,它可以帮你轻松的查看、管理的所有Docker容器,而不需要去记很多复杂的指令

群晖命令行操作Docker

通过上面的知识知道了群晖Container Manager操作的其实就是Docker,接下来演示下如何在群晖上通过命令行操作Docker

首先需要在控制中心->终端机和SNMP下的终端机选项卡中打开SSH功能,端口保持22不变,点击应用

终端中输入ssh 群晖用户名@群晖ip地址,然后输入密码进行登录(如果端口不是22需要使用 -p 来指定端口)

接下来需要登录root用户才能执行docker相关命令,输入sudo -i命令后,再输入管理员密码,就能切换为root用户了

现在就可以指向Docker相关的命令了,例如docker ps,可以看到当前的所有容器

docker images命令可以列出所有镜像

经常看到类似docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta这样的命令

简单介绍下这行命令,docker run:是Docker启动新容器的基本命令,-d: 表示以"Detached"模式运行容器,也就是运行在后台,--name filecodebox:这个选项为容器指定了名字,即filecodebox

也就是说执行这条命令后,会以后台模式创建运行一个名为filecodebox的新容器,使用lanol/filecodebox:beta镜像,如果容器停止,Docker会自动尝试重启它,容器会使用主机的12345端口,并将主机的/opt/FileCodeBox/目录挂载为容器的/app/data目录

细心的小伙伴可以发现这和Container Manager中运行容器之前设置参数一样,不过使用docker命令来操作docker更为快捷、简单。执行成功后,使用docker ps看到的容器状态和Container Manager运行的容器的状态是一致的

更多的docker命令可以参考https://blog.csdn.net/BThinker/article/details/123355362这篇文章,使用docker命令可以方便的创建和管理docker容器,而省去单独设置映射文件等简单重复的操作

Docker-compose又是什么

你可能想,Docker已经很方便了,还有什么呢?答案是:Docker-compose。Docker Compose是一个Docker官方编排的工具,主要用于定义和管理多个Docker容器,在docker-compose.yml中编排好指令,只需通过一个命令,就可以创建并启动所有的服务

如果只是单单的启动一个容器,可能没有什么感觉,但要同时启动多个容器,并且它们之间有依赖关系,Docker-compose的优势就体现出来了,比如下面的docker-compose.yml文件,分别要启动web-server、imageproxy-server、backend-server等服务

启动单个容器也可以使用docker-compose,比如前面的docker命令,改造为docker-compose.yml文件如下

运行也很简单,只需在docker-compose.yml文件的同级目录输入docker-compose up -d命令,就能在后台运行容器了,更多的命令可以查看https://www.jianshu.com/p/c51d92a9f91d这篇文章

后记

通过这篇文章,相信大家对docker容器有了一个简单的认识。docker技术被广泛应用于软件开发上,对于普通用户,学会简单的使用就能满足日常需求了,如果还是觉得有点复杂,那么强大且友好的群晖Container Manager将会是你的理想选择!

查看文章精彩评论,请前往什么值得买进行阅读互动

","gnid":"960f973e308c825f6","img_data":[{"flag":2,"img":[{"desc":"","height":963,"title":"","url":"https://p0.ssl.img.360kuai.com/t01f5ed973c176b2342.jpg","width":1080},{"desc":"","height":"438","title":"","url":"https://p0.ssl.img.360kuai.com/t013efc04b3cf2a30b9.jpg","width":"1080"},{"desc":"","height":"110","title":"","url":"https://p0.ssl.img.360kuai.com/t01b57c924f0e2ac0dc.jpg","width":"938"},{"desc":"","height":"128","title":"","url":"https://p0.ssl.img.360kuai.com/t01685c96b614920d7c.jpg","width":"512"},{"desc":"","height":"778","title":"","url":"https://p0.ssl.img.360kuai.com/t01d51a89852b4520c0.jpg","width":"1080"},{"desc":"","height":"302","title":"","url":"https://p0.ssl.img.360kuai.com/t01c3a6e68dd6e299b8.jpg","width":"660"},{"desc":"","height":"1436","title":"","url":"https://p0.ssl.img.360kuai.com/t0107ee6755ae4705d4.jpg","width":"1080"},{"desc":"","height":"418","title":"","url":"https://p0.ssl.img.360kuai.com/t01c79de02acf337e24.jpg","width":"650"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"pika","pub_time":1703903573000,"pure":"","rawurl":"http://zm.news.so.com/10647b41b5b8d7e2b48951cfbf99aa7f","redirect":0,"rptid":"c3787c77f20fea9e","rss_ext":[],"s":"t","src":"什么值得买","tag":[],"title":"群晖小白系列 篇二十:群晖Container Manager到Docker容器技术

赖力祁3699docker容器运行后退出,怎么才能一直运行 -
安怀晨15014026831 ______ 运行多进程Docker容器的方法如下:1、使用Shell脚本依次启动Kubernetes的各个组件即可.以下为start-kubernetes.sh2、然后在Dockerfile中,将start-kubernetes.sh指定为Docker容器默认执行的命令即可.3、需要注意的一点在于,start-...

赖力祁3699linux里面的docker到底是什么? -
安怀晨15014026831 ______ 一个利用LXC建立起来的一个容器,用于封装作业程序,运行库和其他相关的文件,以便可以方便地部署或者开发(不需要再次配置运行环境). 大部分情况下这些container可以像游戏机的卡带/DVD一样插入系统,直接运行 :) 同时这个软件的开发者也叫同样的名字 Docker.

赖力祁3699什么是docker容器技术? -
安怀晨15014026831 ______ docker容器技术指Docker是一个由GO语言写的程序运行的“容器”(Linux containers, LXCs) Docker则实现了一种应用程序级别的隔离,它改变我们基本的开发、操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的“容器”上来....

赖力祁3699如何看待docker容器与虚拟机之间的比较 -
安怀晨15014026831 ______ 如何看待docker容器与虚拟机之间的比较 题主应该是不知道docker的意义,而不是否认这些技术优势吧.我试着分析一下意义: 1、启动快大部分情况下只影响了用户体验,但是对于负责大规模部署的运维来讲,意义还是挺大.一个东西上线是...

赖力祁3699如何进入 Docker 容器 -
安怀晨15014026831 ______ 如何进入Docker容器 概述 在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法. 进入Docker容器比较常见的几种做法如下: 使用...

赖力祁3699如何在docker容器中运行一个jar而不会被退出 -
安怀晨15014026831 ______ 假设你的容器名字叫做container,试试这样:1 docker run container tail -f /dev/null 后面加命令tail -f /dev/null,就可以保持你的容器一直在前台运行了.

赖力祁3699怎样在 debian 上装 docker -
安怀晨15014026831 ______ 将Docker安装到CentOS或Fedora上 要将Docker安装到CentOS上,首先启用EPEL软件库,然后使用yum命令:$ sudo yum install docker-io $ sudo service docker start $ sudo chkconfig docker on 要将Docker安装到Fedora上,使用下面这些命令...

赖力祁3699如何将应用打包成为 Docker 镜像 -
安怀晨15014026831 ______ 当想让一个容器做两件事情,或者使一个Docker镜像包含来自两个不同镜像的依赖库时,就需要知道每个镜像的Dockerfile.本文介绍了如何通过docker history命令来对Docker镜像进行反向工程,得到它们的Dockerfile,并组织到一个Dockerfile...

赖力祁3699如何利用docker快速构建MySQL主从复制环境
安怀晨15014026831 ______ Docker容器虚拟化的好处 Docker项目的发起人和Docker Inc.的CTO Solomon Hykes认为,Docker在正确的地点、正确的时间顺应了正确的趋势—即高效地构建应用.现在开发者需要能方便地创建运行在云平台上的应用,也就是说应用必须能够...

赖力祁3699如何控制Docker容器的内存,硬盘,CPU等参数 -
安怀晨15014026831 ______ docker run 命令可以对cpu和内存限制,目前没有直接对磁盘限制 Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container -c, --cpu-shares=0 CPU shares (relative weight) -m, --memory="" Memory limit ...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024