docker交互式以及守护式容器操作

docker的安装http://t.csdn.cn/5LhdV

1.1启动 CentOS

使用docker run centos 命令 

我们可以看到并没有容器正在运行,并且也没有进入容器内部。

1.2交互式启动:-it

要启动容器的镜像并且进入容器内部

docker run -it --name centos01 centos   
#-i:保持容器一直运行,但命令行会挂起,通常与 -t 同时使用; 
#-t:为容器分配一个伪输入终端,通常与 -i 同时使用;
#--name:表示该镜像的名称

这样就进入到了容器的终端中 ,docker容器内部的结构跟linux的结构是一样的

退出容器

ctrl + p + q # 不停止退出容器 
exit #容器停止退出,此时执行 docker ps -a,发现 centos 已停止

进入容器

当容器未停止时,在宿主机中可以进入到容器内部命令行
docker attach centos1

在容器外执行容器命令

在容器外部执行命令,使命令在容器内部运行,并返回结果

#确保容器是启动状态,并且当前命令行在容器外部的宿主机上 
docker exec -it centos1 cat /etc/redhat-release
docker exec -it 容器 ID| 容器名称 /bin/bash
# 在容器中打开新的终端,并且可以启动新的进程
之所以叫交互式容器,正是因为允许用户在容器内交互地执行命令的容器

1.3启动守护式容器

我们以tomcat为例

默认情况下, tomcat 的启动会占用当前命令行窗口,并进入挂起状态
docker run tomcat
守护式启动: -d
意思就是说在后台运行,不要占用我前台页面
我们可以以守护进程的方式启动 tomcat 容器
docker run -d --name tomcat1 tomcat #在后台启动 tomcat,不占用命令行资源

但是现在还是访问不了docker 上的8080端口的

linux的IP+8080访问的不是docker容器的8080端口,我们需要建立映射关系。

建立好之后,在访问linux的8080端口就相当于访问docker的8080端口了 

映射容器端口号:-p

默认情况下,我们无法通过 docker 所在的宿主机访问 tomcat 容器的 8080 端口,
需要将 8080 端口映射到宿主机的某一个端口上
docker run -d -p 7777:8080 --name tomcat2 tomcat 
#(小写 p)将容器端口发布到主机 7777 端口 

docker inspect tomcat2 
#inspect 可以用于镜像,也可以用于容器,这里可以查看容器 tomcat2 的详情

ip:hostPort:containerPort 
hostPort:containerPort 
ip::containerPort: 主机随机分配端口映射容器的指定端口 
containerPort: 主机随机分配端口映射容器的指定端口

-p: 指定端口映射,有以下四种格式
访问前面启动的 tomcat 容器:如 http://192.168.100.101:7777,发现报告 404 错误, 原因是 docker latest 版本的 tomcat 下的 webapps 中没有部署任何默认项目, 因此启动浏览器无法访问 tomcat 默认主页面。

 然后访问linux的ip+7777

 显示是能访问的,因为tomcat2里面没有index文件,所以访问不到主页

使用 docker exec -it tomcat2 /bin/bash  进入容器新终端内部

可以看到webapps下没有文件,所以会404

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值