docker 学习记录

docker 安装

直接从源里面下载的,yum install 或者 apt-get install 

 

docker 使用

下载镜像

docker pull 镜像名:(此处不接版本号则自动为 latest 版本)

 

运行容器

方法1(生成并运行新容器):docker run -it image'id /bin/bash(此处是指定交互方式,当然不指定也可以)

方法2(运行已存在容器):docker start container's id  --> attach containers's id /bin/bash

 

终止容器

docker stop containers'id 

 

挂载本地文件夹到容器

方法1(在新生成的容器中挂载):docker run -it -v 本机需挂载文件夹绝对地址:容器中挂载的绝对地址 容器 id /bin/bash

 

制作镜像

使用已有容器提交镜像: docker commit -m "-m表示需要说明的信息"-a "-a表示作者名"  lianup/centos(用户名/仓库名):v1(版本号)

操作完毕后,使用 docker images 可看见自己制作的镜像

 

上传镜像

前提工作:docker login

docker push 镜像名称

 

映射端口

方法一:docker run -dit -p(指定端口) 8080(本机端口号):8080(容器端口号) 容器名字

方法二:docker run -dit -p(指定端口) 127.0.0.1:8080(本机ip+端口号):8080(容器端口号) 容器名字

我用方法二的时候会报错,错误信息如下:

Error response from daemon: driver failed programming external connectivity on endpoint inspiring_wescoff (632a69c06c97259b0394888f3b2c8c8124ca64b1f009e087830a9774aaef8bff): Error starting userland proxy: listen tcp 148.70.233.189:7777: bind: cannot assign requested address.

好像是指绑定不了本机的ip和端口,但是8080并未被占用,很奇怪.

用第一种方法后,进入运行的容器,运行自己的java程序,能够使用服务器公网ip访问.demo成功!

PS:之前用还用了Dockerfile来定制镜像,但是这样子貌似比较麻烦,因为要把jdk和tomcat都带进去.

 

遇到的问题

1.容器一启动就秒退

docker容器持续启动需要有前台线程的位置,故要在run 后加 -dit,意味着前后台交互,才可以使得容器不终止.

2.docker 容器端口映射的问题

如果容器开启了某个服务,例如端口为8080,本机端口也为8080,那么要小心如果容器还在后台运行,又在本机运行同一个服务的情况.请求会被发送到容器里面的服务,而不是本机的服务.

 

常用 docker 指令

docker inspect 容器名/镜像名 : 查看容器/镜像信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值