docker命令详解、宿主机和容器通信原理的问题
我的笔记本是window7系统,为了模拟服务器的环境,安装了虚拟机centOS7。前戏准备一些操作都需要root权限操作,从用户角色转换到root角色命令:sudo su启动docker服务:service docker start(docker所有的操作,都是基于启动docker服务,不然会报:Cannot connect to the Docker da...
我的笔记本是window7系统,为了模拟服务器的环境,安装了虚拟机centOS7。
前戏准备
- 一些操作都需要root权限操作,从用户角色转换到root角色命令:sudo su
- 启动docker服务:service docker start
- (docker所有的操作,都是基于启动docker服务,不然会报:Cannot connect to the Docker daemon. Is the docker daemon running on this host?)
- 查看镜像列表:docker images
- 查看已启动的容器列表:docker ps
- 查看所有的容器列表:docker ps -a
- 简单的开启一个容器:docker start 容器ID
- 进入容器:docker attach 容器ID
1.首先在宿主机(虚拟机centOS7)上安装docker:
参考菜鸟教程:http://www.runoob.com/docker/centos-docker-install.html
2.之后拉取Ubuntu镜像:
参考:http://blog.csdn.net/gaoxinghuan/article/details/56352060
3.下载jdk/tomcat安装包,并且从宿主机(虚拟机)挂载到容器中:
3.1 centOS把源文件夹(/home/xiaoxie/javawebTool/)下的安装包复制到-->目标文件夹(/opt/soft/)下:
cp -Rf /home/xiaoxie/javawebTool/* /opt/soft/
(cp -Rf 源文件夹下的所有文件 目标文件夹)
3.2 运行镜像(镜像id),并将宿主机/opt/soft目录挂载到容器的/opt/soft上 :
docker run -i -t -v /opt/soft/:/opt/soft/ 9b9cb95443b5 /bin/bash
(docker run -i -t -v 宿主机文件目录 : 容器文件目录 镜像id /bin/bash)
4.在容器内安装jdk和tomcat:
4.1 安装jdk到/opt/jdk:
创建文件夹jdk:mkdir /opt/jdk
(mkdir 创建的文件夹)
解压jdk安装包到/opt/jdk文件下:tar -zxvf jdk-8u161-linux-x64.tar.gz -C /opt/jdk
(tar -zxvf 要解压文件的全路径 -C 安装路径)
centOS在docker中配置jdk的环境变量:
第一步:echo -e "\n\nexport JAVA_HOME=/opt/jdk/jdk1.8.0_161" | tee -a /etc/profile
第二步:echo -e "\nexport PATH=\$PATH:\$JAVA_HOME/bin" | tee -a /etc/profile
第三步:source /etc/profile
最后检查:java -version
4.2 安装tomcat到/opt/tomcat:
创建文件夹tomcat:mkdir tomcat
解压tomcat安装包:tar -zxvf apache-tomcat-7.0.85.tar.gz -C /opt/tomcat/
5.把配置好jdk、tomcat的容器commit成镜像,方便以后使用:
docker commit -m "first ubuntu" -a "xiaoxie" efa4ec8b663c docker.javaweb
(docker commit -m "提示信息" -a"作者" 容器id 镜像名称)
6.启动新生成的镜像,把宿主机器的80端口映射到容器的8080端口
(这一步导致,访问ip+端口号(8080)变成了直接访问域名,因为宿主机器的80端口是访问web的默认端口。)
docker run -it --name tomcat -p 80:8080 docker.javaweb /bin/bash
(docker run -it --name 容器名称 -p 宿主机端口 : 容器的端口 镜像名称 /bin/bash)
启动tomcat:
配置环境:source /etc/profile
进入到tomcat的bin目录:cd /opt/tomcat/apache-tomcat-7.0.85/bin/
启动tomcat:./startup.sh
访问tomcat:
在宿主机器上访问查询IP端口:ip addr
(用来查找访问tomcat的域名)
tomcat访问结果截图:
---------------------------------------------------------------------------打完收工。
但有了疑惑,宿主机如何找到容器中的端口,或者说,宿主机和容器是如何通信的?
7.宿主机和容器是如何通信的:
给出流程图:
如有不懂,请参考:点击打开链接,此流程图便是阅读这篇知乎文章,根据自己理解所画。
关于docker做了一个新的系列讲解:Docker最新版详解系列
---------------------------------------------------------------------------不关注我“象话”吗?
如有疑惑,请评论留言。
如有错误,也请评论留言。
我的网站 https://www.lookhot.cn/#/
CSDN私信我,接私活
更多推荐
所有评论(0)