how2j.cn

步骤 1 : 概念图   
步骤 2 : 进入容器   
步骤 3 : 概念   
步骤 4 : 更多操作   

通过 跑天猫 这么一个示例,下面我们来理解 Docker 里面的概念。
如图所示: 最上面是镜像仓库。
拉取镜像 中的语句:

docker pull how2j/tmall

"how2j/tmall" 就是站长事先做好的一个镜像。 所谓的镜像,就是持久化后的,安装了各种工具,软件和服务的一个Linux 操作系统。
它是 站长事先就上传到 docker 的镜像仓库去的。 镜像仓库又在哪里呢?
它就在这里啦:
https://cloud.docker.com/u/how2j/repository/docker/how2j/tmall
注:如何自己上传一个呢? 这个在后面会讲解如何自己制作和上传。
通过pull 命令, pull 就是拉取的意思,指的是把镜像从服务器上拉到 Docker 本地。 拉到本地之后,再把这个镜像激活,所谓的激活,就是把他 run 起来。 用的命令就是 运行镜像 中的 run 命令。

docker run -dit --privileged -p21:21 -p80:80 -p8080:8080 -p30000-30010:30000-30010 --name how2jtmall how2j/tmall:latest /usr/sbin/init

这个命令看着长,其实不难,我挨个挨个来给大家分解
docker run 表示运行一个镜像
-dit 是 -d -i -t 的缩写。 -d ,表示 detach,即在后台运行。 -i 表示提供交互接口,这样才可以通过 docker 和 跑起来的操作系统交互。 -t 表示提供一个 tty (伪终端),与 -i 配合就可以通过 ssh 工具连接到 这个容器里面去了
--privileged 启动容器的时候,把权限带进去。 这样才可以在容器里进行完整的操作
-p21:21 第一个21,表示在CentOS 上开放21端口。 第二个21 表示在容器里开放21端口。 这样当访问CentOS 的21端口的时候,就会间接地访问到容器里了
-p80:80 和 21一个道理
-p8080:8080 和21 一个道理,在本例里,访问的地址是 http://192.168.84.128:8080/tmall/, 这个 192.168.84.128 是CentOS 的ip地址,8080是 CentOS 的端口,但是通过-p8080:8080 这么一映射,就访问到容器里的8080端口上的 tomcat了
-p30000-30010 和21也是一个道理,这个是ftp用来传输数据的
--name how2jtmall 给容器取了个名字,叫做 how2jtmall,方便后续管理
how2j/tmall:latest how2j/tmall就是镜像的名称, latest是版本号,即最新版本
/usr/sbin/init: 表示启动后运行的程序,即通过这个命令做初始化
概念图
所谓的进入容器,就是进入启动的 运行Tomcat的Linux。
进入办法:

docker exec -it how2jtmall /bin/bash

进去之后,就可以像操作一个普通 linux 那样操作了,如图所示执行 ls 命令
进入容器
到目前位置,我们建立了如下概念:
仓库: 别人做好的现成的镜像,都放在仓库里
镜像: 自己要用哪个镜像,就先拉到本地来。镜像就相当于还没激活的容器。
容器: 容器就是跑起来的镜像,就是一个完整的工作环境
之后,就会对镜像,容器等进行管理工作,介绍其他相关的命令了


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2021-06-23 工具和中间件-docker-概念理解
fubingfei

安装了各种工具,软件和服务的一个Linux 操作系统镜像怎么做







回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2020-08-26 21端口和30000-30010端口与ftp好像有冲突
淡淡的定

我使用的是阿里云的服务器,已经开了21和30000-30010端口给FTP。 在使用站长相同的命令启动docker时,显示21端口已经被用了,于是我重新开了个50端口,将命令中的21端口改为50端口,docker就可以运行了。 但是FTPRush连接不上了。。。 于是我又开了个20000-20010端口,将命令中的30000-30010端口改为20000-20010端口,docker也能启动了,FTPRush也可以连上了。 请问我这样操作有没有什么问题? 我对这两个端口的理解是通过容器的端口与本机的端口对应,这样FTP通过本机的端口就可以访问容器端口。可是如果按这样启动了之后本机端口就被docker占用了而不能使用了,那FTP也就没法访问容器的那个端口啊。







回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2019-08-22 站长的镜像仓库打不开
2019-06-19 docker和git的区别?
2019-05-21 exit退出容器


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 1 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 工具和中间件-docker-概念理解 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图