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: