Docker 常用命令(二)
4. 查看Docker镜像创建历史:
docker history flaskhello
3. Docker提交镜像
docker build -t flaskhello .
docker run -p 4000:80
flaskhello
docker run -d -p 4000:80
flaskhello
docker tag
flaskhello
john/get-started:part1
docker push xiaofeier312/learning:v0.1flaskhi
2.Docker 容器镜像删除
1.停止所有的container,这样才能够删除其中的images: docker stop $(docker ps -a -q)
如果想要删除所有container的话再加一个指令: docker rm $(docker ps -a -q)
2.查看当前有些什么images docker images
3.删除images,通过image的id来指定删除谁 docker rmi <image id>
想要删除untagged images,也就是那些id为<None>的image的话可以用docker rmi $(docker images | grep "^<none>" | awk "{print $3}") 要删除全部image的话 docker rmi $(docker images -q)
1. 在做练习的时候, 一直无法成功:
导出服务端口
# 将4444端口从容器导出,在容器内部通过nc监听到4444端口(nc是一个简单的监听器,可以接收用户的输入)
$ JOB=$(docker run -d -p 4444 ubuntu:12.10 /bin/nc -l 4444)
# 通过docker port可以查看主机上哪一个端口映射到了容器的 4444端口(docker默认使用nat映射方式)
$ PORT=$(docker port $JOB 4444 | awk -F: '{ print $2 }')
# 向主机的端口,发送hello world
$ echo hello world | nc 127.0.0.1 $PORT
# 确认容器收到了hello world
$ echo "Daemon received: $(docker logs $JOB)"
剖析:
- nc是一个简单的监听指定端口的程序
- -p表示导出容器的指定端口,由于没有指定主机端口,因此是随机分配的
- 外部程序可以通过主机的端口,间接访问容器的4444端口
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
分析发现 Ubuntu的docker镜像 没有很多命令, 先安装nc
apt-get install netcat
之后也一直无法用host连接镜像的端口,
于是在镜像里调试:
>>nc -l 4444&
>>nc 127.0.0.1 4444
发现报错, 根本无法连接
安装netstat,后查看nc的端口监听的不是4444
查看当前版本nc的帮助发现,当前版本,需要用
>>nc -l -p 4444
解决.
最新文章
- html图标插件
- css 强制 中文、英文 换行
- Monkeyrunner 常用按键
- linux 安装 ftp
- 与(and)&;&;
- iOS开发之Xcode 6更新默认不支持armv7s架构
- MyBatis学习总结_06_调用存储过程
- 在虚拟机VM中安装的Ubuntu上安装和配置Hadoop
- Hadoop将过时了?
- Unix 基础IO
- APP界面设计之页面布局的22条基本原则
- (一)boost库之日期、时间
- JavaScript 进阶(一)JS的";多线程";
- SQL Server 创建表分区
- HDU 1686 Oulipo(KMP+计算匹配成功次数)
- jQuery获取Select选择的Text和 Value(转,待测试确认)
- Android学习(二)
- spring boot 集成 thymeleaf
- 如何快速安装visual studio 2017和破解
- 深入理解USB流量数据包的抓取与分析