doker防坑指南(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luhu124541/article/details/88372754

1、docker run -p 4000:80 firstdocker报错
/bin/sh: 1: [python,: not found
原因:Dockerfile中最后一行错误

#app.py应该加上双引号,注意,CMD后面跟着的列表里的项都必须用双引号括起来,不能用单引号。
CMD ["python", app.py]

2、docker run -p 4000:80 firstdocker
D:\SoftWareForUtility\Docker\Docker Toolbox\docker.exe: Error response from daemon: driver failed programmin g external connectivity on endpoint tender_ganguly (1bb225584ff32cbc8408c3da85a3419e83c52380854cd7e59de39054 a9caebe1): Bind for 0.0.0.0:4000 failed: port is already allocated.

用docker container ls查看后发现有多个相同镜像生成的容器在运行,所以需要删除容器。

docker rm -f <container-name>

3、终止container的运行:docker container stop container-ID或者直接docker stop container-ID
开启关闭的container,docker start container-ID
4、如果使用的是Docker Toolbox,那么启动镜像后应该在浏览器输入docker-machine 的ip地址用来代替localhost

#查看docker-machine的ip
docker-machine ip

#假设ip为192.168.0.1,浏览器访问时应该输入:
http://192.168.0.1:4000

5、docker swarm init报错

Error response from daemon: could not choose an IP address to advertise since this system has multiple addresses on different interfaces (10.0.2.15 on eth0 and 192.168.99.100 on eth1) - specify one with --advertise-addr

原因是存在有两个地址,一个以太网地址,一个wifi地址,设置为其中一个即可,
#查看默认的ip
1、docker-machine ip default
#将地址设置为默认ip
2、docker swarm init --advertise-addr ip

6、docker stack deploy -c docker-compose.yml getfirsttest报错:
yaml: invalid leading UTF-8 octet

原因:yaml文件中输入的内容格式错误,需要用UTF-8的格式,将文件格式设置为UTF-8即可。
用笔记本打开文件,点击文件-》另存为-》设置右下方的编码为utf-8,然后保存,将之前的那个文件删除,然后将另存的文件后缀名改为.yml

二、常识篇

1、关机之后下次重新打开电脑,可以直接点击Docker QuickStart Terminal,或者打开git bash然后输入docker-machine start,要关闭docker-machine,用:docker-machine stop
2、在git bash中无法docker login,需要在Docekr QuickStarts Terminal或者cmd中登入,输入:

docker login

3、在服务中运行的单个容器叫做任务。

三、 命令小结

1、docker ps:查看运行的所有容器的详细信息
2、用于将本地镜像与远程镜像相关联
docker login
#firstdocker是镜像名,get-started是仓库名,part1是tag
docker tag firstdocker john/get-started:part1
3、push镜像(push前必须login,否则push不上去)
docker push john/get-started:part1
#push上去后可在任意机器上运行。
1、显示详细信息:ls -l
2、查看文件:cat filename
3、以文本方式打开文件:notepad filename
version:"3"
services:
	images:john/get-started:part1
	deploy:
		replicas:5
		resources:
			limits:
				cpus:"0.1"
				memory:50M
			restart_policy:
				condition:on-failure
	ports:
		- "80:80"
	networks:
		- webnet	
networks:
	webnet:

猜你喜欢

转载自blog.csdn.net/luhu124541/article/details/88372754