首页 >>  正文

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容器技术

刁翔黛786如何在docker容器中运行一个jar而不会被退出 -
璩万吴19586425651 ______ 假设你的容器名字叫做container,试试这样:1 docker run container tail -f /dev/null 后面加命令tail -f /dev/null,就可以保持你的容器一直在前台运行了.

刁翔黛786如何使用软件容器工作站 -
璩万吴19586425651 ______ 快速创建LXC容器 QNAP LXC镜像文件提供多种不同的Linux版本,让您可以快速创建Linux虚拟机. 点击〔创建容器〕并展开〔QNAP LXC/Docker镜像文件〕,然后您可看到已内建的LXC镜像文件(Debian/Fedora/Ubuntu). 以Ubuntu为例,...

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

刁翔黛786如何进入Docker容器 -
璩万吴19586425651 ______ Docker容器运行后,如何进入容器进行操作呢?起初我是用SSH.如果只启动一个容器,用SSH还能应付,只需要将容器的22端口映射到本机的一个端口即可.当我启动了五个容器后,每个容器默认是没有配置SSH Server的,安装配置SSHD...

刁翔黛786如何用Docker 管理 Linux Container 容器与网络设置 -
璩万吴19586425651 ______ 当前Ubuntu 系统下的 Docker 的安装包只提供64位.如果你想运行32位的 Docker,你需要. 安装 Docker 通过 apt-get 安装 Docker 简直是小菜一碟. $ sudo apt-get install docker.io 如果你不是 root 组的用户,你可以把自己加入到 docker 用...

刁翔黛786为什么docker容器启动不了 -
璩万吴19586425651 ______ 步骤1:为我们的容器创建第一个镜像# 以 centos 镜像作为基础镜像,我们启动自己的容器并在其中执行/bin/bash命令# 注:-t -i 参数用于创建一个虚拟的命令行.sudo docker run -t -i centos /bin/bash 现在我们已经成功的运行了自己的第一个容...

刁翔黛786Docker的主要作用是什么? -
璩万吴19586425651 ______ 目前来看,Docker至少有以下应用场景: 1)测试:Docker 很适合用于测试发布,将 Docker 封装后可以直接提供给测试人员进行运行,不再需要测试人员与运维、开发进行配合,进行环境搭建与部署. 2)测试数据分离:在测试中,经常由...

刁翔黛786如何在Docker容器中运行Apache服务器 -
璩万吴19586425651 ______ 创建自基础容器容器安装文章所需用工具读者容器 id 能与文章所同步 docker ps -a 结准 sudo docker commit da90 custom/base 容器功提交执行 sudo docker images 我看刚才提交容器(面结所示)我容器基础容器再创建新容器!

刁翔黛786Docker的镜像和容器的区别 -
璩万吴19586425651 ______ 一、Docker镜像 要理解Docker镜像和Docker容器之间的区别,确实不容易.假设Linux内核是第0层,那么无论怎么运行Docker,它都是运行于内核层之上的.这个Docker镜像,是一个只读的镜像,位于第1层,它不能被修改或不能保存状态....

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