从Linux容器到Docker
读者可以简单地将Docker容器理解为一种沙盒(Sandbox)。每个容器内运行一个应用,不同的容器相互隔离,容器之间也可以建立通信机制。容器的创建和停止都十分快速,容器自身对资源的需求也十分有限,远远低于虚拟机。很多时候,甚至直接把容器当作应用本身也没有任何问题。
docker 在mac 的下载地址 :
https://www.docker.com/get-started
就一直下一步安装好之后,输入
docker --version
就能看到版本号
docker 中三个非常重要的概念 docfile,image,container
通过镜像可以创建多个容器,dockerfile 用来创建我们之前使用过的镜像。
dockerfile 是一种自动化脚本。
Dokerfile 文件,放到mac的目录
/Users/matsuko/Desktop/erp/Dockerfile 中:
FROM python:3.8-slim-buster
WORKDIR /Users/matsuko/Desktop/erp
COPY . .
RUN pip3 install -r requirements.txt
CMD ["python3","app.py"]
docker build -t my-finance .
通过docker run 来启动一个容器
docker run -p 80:5000 -d my-finance
-p 这里在做接口映射 80 是我们的本地端口,
5000 是容器上的端口。
-d 指的是让容器在后台运行
不出意外的话访问,
如果出现报错
Bind for 0.0.0.0:80 failed: port is already allocated.
解决方案是
查看进程,发现相关的容器并没有在运行,而 docker-proxy 却依然绑定着端口:
docker ps
检查docker镜像
ps -aux | grep -v grep | grep docker-proxy
查看被docker-proxy占用的端口
停止 doker 进程,删除所有容器,然后删除 local-kv.db 这个文件,再启动 docker 就可以了。
sudo service docker stop
docker rm $(docker ps -aq)
sudo rm /var/lib/docker/network/files/local-kv.db
sudo service docker start
Docker利用仓库管理镜像的设计理念与Git代码仓库的概念非常相似,实际上Docker设计上借鉴了Git的很多优秀思想。
可以使用
【2】
《doker技术入门与实践 第三版 》 2.2 安装docker 引擎
docker version
查看docker 更详细的信息。
Windows 的docker 安装
https://www.runoob.com/docker/windows-docker-install.html
https://www.cnblogs.com/phpper/p/10844757.html
宝塔安装失败解决方法:
宝塔安装报错,解决:Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal…
参考资料:
【1】 Docker 10分钟快速入门
https://www.bilibili.com/video/BV1s54y1n7Ev?from=search&seid=11717202961901593324&spm_id_from=333.337.0.0
【2】doker技术入门与实践 第三版