–>>【Linux】CentOS-常用命令&新云服务器安装必看
Linux-Docker使用教程,我这里用的是Linux-CentOS
https://www.runoob.com/docker/centos-docker-install.html
https://www.cnblogs.com/djlsunshine/p/11375323.html
【x】https://www.runoob.com/docker/docker-compose.html不要用里面的下面地址,速度会特别慢!!!
【√】用这个https://cloud.tencent.com/developer/article/1339375 里面的
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
然后输入docker-compose --version检查是否安装成功
AAA 创建python项目并上传到linux上
参考:
Dockerfile使用的python3.7作为基础镜像 FROM python:3.7,但是执行
RUN pip install --no-cache-dir -r requirements.txt
是默认走了这个源,https://files.pythonhosted.org/packages,编译用时太久。
无赖修改成国内源来加快编译速度:
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir -r requirements.txt
BBB Dockerfile的内容&构建镜像
#基于的基础镜像
FROM python:3.6
#代码添加到code文件夹,后面可以通过进入容器中看的
ADD ./py /code
# 设置code文件夹是工作目录
WORKDIR /code
# 安装支持
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir -r requirements.txt
# 暴露端口
EXPOSE 5000
#当容器启动时,使用python3执行指定路径的py脚本
CMD ["python", "app.py"]
根据Dockerfile制作镜像的命令:docker build -t img_name:tag_name .
构建镜像,构建参数说明参考:http://www.runoob.com/docker/docker-build-command.html
CCC 【例子】运行镜像,生成并启动容器
执行命令:docker run -it -p 5000:5000 --name container_name IMAGE_ID
-it:表示交互式终端的容器,非启动后立刻结束的容器
-p 5000:5000:表示将docker的5000端口,映射到Linux虚拟机的5000端口
也就是说,访问Linux虚拟机的5000端口,就是在访问docker容器的5000端口
--name container_name:给容器取个名字,嫌麻烦可以省去
img_name:容器是用哪个镜像启动的(一个容器,必须依赖一个镜像启动)
直接输入exit 会退出且关闭容器,工程就stop了,再访问就访问不了了
Ctrl + C,会报错KeyboardInterrupt,工程就也stop了
解决方法:
但是,如果使用Ctrl + P + Q退出容器,就不会中断工程,等于退出容器后,还可访问容器的工程,再进入,也是使用命令:docker attach 容器ID
ctrl+d 退出容器且关闭, docker ps 查看无
ctrl+p+q 退出容器但不关闭
CCC 运行镜像
–name 服务名
-d 后台运行
-p 暴露端口:nginx 端口
docker-nginx-test 镜像名/IMAGE ID
docker run --name dockertest -d -p 4455:80 docker-nginx-test
DDD Linux-CentOS需要开启5000端口
firewall-cmd --zone=public --add-port=5000/tcp --permanent #永久开启5000端口
firewall-cmd --reload #重启firewall 每次新添加端口都要
1.查看当前运行的所有容器
docker ps -a
2.停止所有容器(container),这样才能够删除其中的images:
docker stop $(docker ps -a -q)
3.如果想要删除所有容器(container)的话再加一个指令:
docker rm $(docker ps -a -q)
4.查看当前有那些镜像(images)
docker images
5.删除镜像(images),通过镜像(images)的id来指定删除谁
docker rmi
6.想要删除镜像(images)id为的image的话可以用
docker rmi $(docker images | grep "^" | awk "{print $3}")
7.要删除全部镜像(images)的话
docker rmi $(docker images -q)