最新要闻
- 世界速讯:20万元买特斯拉?陶琳甩出5张图:中国价格全球最低
- 天天速看:高通垄断全球基带!中国紫光展锐排第4:2G/3G/4G/5G都很难
- 环球热议:仙履奇缘3中文版央视网 仙履奇缘3国语版免费
- 全球快资讯:美光被审查 国产存储芯片崛起的机会来了?
- 1L体积塞进电源!联想推出小新mini主机:性能超越M2
- 【时快讯】403秒!中国"人造太阳"又创世界纪录:领先世界5年
- 环球微动态丨中国巡天太空望远镜明年底发射 将参与近地小行星防御撞击任务
- 高中语文小说情节的作用_高中语文小说的情节题的答题方法 题型
- 全球看热讯:可以攒钱了!任天堂Switch 2最快年底发布
- 实时:14年老牌网站 音悦台官宣回归后向EXO、坤音道歉:欠债一定还
- 当前快播:《塞尔达传说:王国之泪》实机中黑皮女子是谁:海利亚女神附身塞尔达?
- 今日精选:亚马逊加入战局:推出大语言模型“泰坦”为客户提供便宜芯片
- 【全球快播报】藏族女子出嫁带硬核嫁妆走红 价值百万只是一部分:男方根本不用巨额彩礼
- 上榜门槛全线上升!2023年一季度粤港澳湾区房企销售榜发布
- 当前聚焦:通用官宣放弃苹果CarPlay 车企车机自主化势在必行?
- 等等党措手不及!内存、SSD现货价已开始反弹:三星/美光疯狂减产奏效了
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球今热点:docker_day04:Dockerfile docker私有仓库 dockercompose介绍 dockercompose部署 一件部署路飞项目
(相关资料图)
目录- 回顾
- Dokerfile
- 常用和不常用命令
- dockerfile构建一个djagno项目
- 公司中,使用Docker开发的工作流程
- docker私有仓库
- 镜像传到官方仓库
- 镜像分层
- 私有仓库搭建
- dockercompose介绍
- dockercompose部署flask+redis项目
- 新建flask项目 app.py
- 编写Dockerfile --->>> 用于构建flask项目的镜像
- 编写docker-compose的yaml文件 docker-compose.yml
- docker-compose启动
- dockercompose一键部署路飞项目
- 项目目录结构
- luffy_api/Dockerfile ---> 构建uwsgi+django
- docker-compose.yml
- 一键部署
回顾
# 容器其他操作docker start 容器id 启动容器docker stop 容器id 停止容器docker rm 容器id删除容器docker rm `docker ps -aq` 删除所有容器docker exec -it 容器id 命令 进入容器docker cp 宿主机目录 容器id:容器目录 # 目录要存在docker cp 容器id:容器目录 宿主机目录docker inspect --format="{{.NetworkSettings.IPAddress}}" 容器名称(容器ID)两个容器ping nginx容器,底层操作系统不是centos apt-get install yum install# 应用部署mysql:一定要做目录映射,做了目录映射后,删除容器,再重新运行一个容器,数据都在 docker run -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 nginx docker run -id --name nginx -p 80:80 -v /root/html:/usr/share/nginx/html nginxredis docker run -id -p 6379:6379 --name redis -v /root/redis.conf:/etc/redis/redis.conf -v /root/data:/data redis redis-server /etc/redis/redis.conf# 容器必须有个前台进程在运行,否则就会停掉# 迁移与备份1 把容器做成镜像 docker commit 容器名字 镜像名字 2 把镜像保存成压缩包 docker save -o centos_vim_image.tar 镜像名字 3 把压缩包还原成镜像 docker load -i centos_vim_image.tar # Dockerfile 用来构建镜像 名字必须叫Dockerfile 写一些命令:RUN docker build -t="centos_lqz_vim" .
Dokerfile
常用和不常用命令
FROM: 指定基础镜像RUN: 构建镜像过程中需要执行的命令。可以有多条。docker buildCMD:添加启动容器时需要执行的命令。多条只有最后一条生效。可以在启动容器时被覆盖和修改。ENTRYPOINT:同CMD,但这个一定会被执行,不会被覆盖修改。MLABELAINTAINER:表明镜像的作者。将被遗弃,被LABEL代替。EXPOSE:设置对外暴露的端口。ENV:设置执行命令时的环境变量,并且在构建完成后,仍然生效ARG:设置只在构建过程中使用的环境变量,构建完成后,将消失ADD:将本地文件或目录拷贝到镜像的文件系统中。能解压特定格式文件,能将URL作为要拷贝的文件COPY:将本地文件或目录拷贝到镜像的文件系统中。VOLUME:添加数据卷USER:指定以哪个用户的名义执行RUN, CMD 和ENTRYPOINT等命令WORKDIR:设置工作目录ONBUILD:如果制作的镜像被另一个Dockerfile使用,将在那里被执行Docekrfile命令STOPSIGNAL:设置容器退出时发出的关闭信号。HEALTHCHECK:设置容器状态检查。SHELL:更改执行shell命令的程序。Linux的默认shell是[“/bin/sh”, “-c”],Windows的是[“cmd”, “/S”, “/C”]。
dockerfile构建一个djagno项目
公司中,使用Docker开发的工作流程
第一步:有一个项目,pycharm开发着,开发完后第二步:在项目路径下新建Dockerfile,写入FROM python:3.8MAINTAINER lqzWORKDIR /softCOPY ./requirements.txt /soft/requirements.txtRUN pip install -r requirements.txt -i https://pypi.doubanio.com/simpleCMD ["python","manage.py","runserver","0.0.0.0:8080"]第三步:把代码提交到git------------------第四步:上线人员:在上线机器上,把代码啦下来git clone https://gitee.com/liuqingzheng/books.git第五步:构建镜像docker build -t="django_books" .第六步:运行容器docker run -id --name=books -v /root/lqz/books:/soft -p 8080:8080 django_books:latest第七步:其它人访问宿主机的8080端口就能看到项目了---------第八步:开发人员继续提交代码第九步:运维人员pull代码,重启容器,用户就可以看到最新的了重启docker容器即可(第三方依赖变了)--》重写构建镜像,运行容器
将宿主机重启:
docker私有仓库
有个远程仓库 ,docker官方提供的 ---》我们可以把我们的镜像传上去
公司做的镜像,一般不放在远程仓库,公司会自己搭建私有仓库(把公司制作的镜像传到私有仓库)
镜像传到官方仓库
# 第0步:在远端创建仓库# 第一步:给镜像打标签docker tag ab5c0e652fd4 liuqingzheng/centos_vim:v1# 第二步:登录到远程docker login 用户名:不是邮箱 密码:挺复杂 # 第三步:提交docker push liuqingzheng/centos_vim:v1 # 第四步:别人就可以下载了docker pull liuqingzheng/centos_vim:v1
镜像分层
每一个Dockerfile命令都会构建一层镜像(本质上是每一层都会启动一个容器,执行完命令后,将容器进行提交通过查看下载下来的镜像,发现历史层信息的层ID是missing,其实是因为原本的层id只存在于构建镜像的宿主机上,一旦转移镜像后,历史层消息中将只保留最新一层的ID
RUN yum install vim -yRUN yum install git -y# 查看镜像分层的命令docker history liuqingzheng/centos_vim:v1# 好处:构建快,分发方便,如果本地有某一层了,这一层就不需要下载了# 补充:Dcokerfile写命令,建议多条命令合为一条RUN python -m pip install --upgrade pip &&\ python -m pip install --upgrade setuptools &&\ pip install -r requirements.txt
私有仓库搭建
# 自己搭建私有仓库-harbor:企业级私有仓库---》https://blog.csdn.net/Gf19991225/article/details/121982824 - registry:用docker搭建私有仓库 # 搭建步骤:第一步:拉取镜像 docker pull registry第二步:运行容器:docker run -di --name=registry -p 5000:5000 registry第三步:打开浏览器 输入地址http://47.103.74.128:5000/v2/_catalog看到{"repositories":[]} 表示私有仓库搭建成功并且内容为空第四步:修改daemon.json vi /etc/docker/daemon.json { "insecure-registries":["47.103.74.128:5000"] } 第五步:重启docker 让配置生效 systemctl restart docker docker start registry 第六步:把某个镜像tag成私有仓库的镜像 docker tag 镜像名字/id 47.103.74.128:5000/django_books:v1 第七步:提交到私有仓库 docker push 47.103.74.128:5000/django_books:v1 第八步:其他人,只要配置了私有仓库就可以直接拉取 docker pull 47.103.74.128:5000/django_books:v1
dockercompose介绍
使用了docker 面临一个比较大的问题,如果一个djagno项目,使用mysql,redis,不要一次性把所有服务都放到一个容器中,每个服务一个容器,批量的管理多个容器,比较难以操作,于是有了docker-compose
# Docker Compose是一个能一次性定义和管理多个Docker容器的工具,单机容器编排【定义和管理】# 多机容器编排-docker swarm:公司里用的不多-k8s是多机容器编排工具,go语言写了k8s Compose中定义和启动的每一个容器都相当于一个服务(service) Compose中能定义和启动多个服务,且它们之间通常具有协同关系 管理方式: 使用YAML文件来配置我们应用程序的服务。 使用单个命令(docker-compose up),就可以创建并启动配置文件中配置的所有服务。 # 安装docker-compose (可执行文件,放在了github上,下载下来即可,速度很慢)# https://github.com/docker/compose/releaseswget https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64cp ./docker-compose-linux-x86_64 /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose# 以后在任意位置敲docker-compose都可以# 常用命令# 启动管理容器docker-compose up # 会自动搜索当前路径下的 docker-compose.yml文件docker-compose -f 指定文件 updocker-compose up -d # 后台执行,一般我们看日志输出,不用这个docker-compose stop # 停止,不会删除容器和镜像docker-compose down # 停止,并删除关联的容器docker-compose start # 启动yml文件管理的容器docker-compose ps # 正在运行的容器docker-compose images # docker-compose管理的镜像docker-compose exec yml文件中写的service /bin/bash # 进入到容器内
dockercompose部署flask+redis项目
flask 项目,使用redis服务 --->>> 2个容器
新建flask项目 app.py
from flask import Flaskfrom redis import Redisimport osapp = Flask(__name__)redis = Redis(host=os.environ.get("REDIS_HOST", "127.0.0.1"), port=6379)@app.route("/")def hello(): redis.incr("hits") return "你好! 查看 %s 次\n" % (redis.get("hits"))if __name__ == "__main__": app.run(host="0.0.0.0", port=5000, debug=True)
编写Dockerfile --->>> 用于构建flask项目的镜像
FROM python:3.8WORKDIR /appCOPY . /appRUN pip install flask redis -i https://pypi.tuna.tsinghua.edu.cn/simpleEXPOSE 5000CMD [ "python", "app.py" ]
编写docker-compose的yaml文件 docker-compose.yml
version: "3"services: redis: image: redis web: build: context: . dockerfile: Dockerfile ports: - 8080:5000 environment: REDIS_HOST: redis
docker-compose启动
# 如果redis服务的名字叫redis,我在web服务中(容器中),根据redis名字就能拿到容器ping redis # 进入到了web,ping redis # 安装ping命令, apt-get update apt-get install inetutils-ping ping redis # 一键部署:redis,和flask ,每个都在一个容器中docker-compose up
dockercompose一键部署路飞项目
# 一台服务器:python3.8 环境 djagno +uwsgi+代码nginx软件mysql 5.7redis # 每个都做成一个容器djagno项目容器:python3.8 构建的django,模块,uwsgi,代码nginx容器:目录映射,映射到宿主机,代理vue前端,编译后的静态文件mysql 容器:创建,创用户,密码,luffy库redis 容器,跑起来即可 # docker-compose yml文件配置,一键启动git clone https://gitee.com/liuqingzheng/luffy.git 目录结构 luffy luffy_api # 后台项目 Dockerfileluffycity # 前台项目 docker_compose_files # 放数据的文件夹 docker-compose.yml #ymal文件 docker-compose.yml内容 Dockefile 文件 修改前端链接后台的地址:luffycity/src/access/xx.js 编译:npm run build 提交到git 要部署的服务器:git clone https://gitee.com/liuqingzheng/luffy.git docker,docker-compose装好 docker-compose up 访问宿主机的 80 端口
项目目录结构
luffy-docker_compose_files # nginx有自己的配置文件,redis自己的配置,mysql的配置 nginx # 文件夹 redis # 文件夹 mysql.env#配置文件 -luffy_api # 原来路飞后端项目 -Dockerfile -luffy.ini # luffy.xml uwsgi的配置文件 -luffycity # 前端项目 -docker-compose.yml # docker-compose的配置文件 # 把luffycity/dist 文件夹删除# 把\luffy\luffycity\src\assets\js\settings.js后端地址改成上线地址(服务器地址)# 来到前端路径下:luffy\luffycitycnpm install 安装依赖# 编译,在\luffy\luffycity\dist文件夹npm run build# 提交到git上# 在部署的机器上,git clone 下来# 进入到项目目录docker-compose up
luffy_api/Dockerfile ---> 构建uwsgi+django
FROM python:3.8MAINTAINER lqzWORKDIR /softCOPY ./requestment.txt /soft/requestment.txtRUN pip install -r requestment.txt -i https://pypi.doubanio.com/simple#CMD ["uwsgi", "-x", "./luffy.xml"]CMD ["uwsgi", "./luffy.ini"]#CMD ["python", "manage_pro.py", "runserver"]
docker-compose.yml
version: "3"services: nginx: image: nginx container_name: luffy_nginx ports: - "80:80" - "8000:8000" restart: always volumes: - ./luffycity/dist:/var/www/html - ./docker_compose_files/nginx:/etc/nginx/conf.d depends_on: - django networks: - web django: build: context: ./luffy_api dockerfile: Dockerfile container_name: luffy_django# command: python manage_pro.py makemigrations && python manage_pro.py migrate && uwsgi ./luffy.ini restart: always ports: - "8080:8080" volumes: - ./luffy_api:/soft environment: - TZ=Asia/Shanghai depends_on: - mysql - redis networks: - web redis: image: redis:6.0-alpine container_name: luffy_redis ports: - "6379:6379" volumes: - ./docker_compose_files/redis/data:/data - ./docker_compose_files/redis/redis.conf:/etc/redis/redis.conf command: redis-server /etc/redis/redis.conf networks: - web mysql: image: mysql:5.7 container_name: luffy_mysql restart: always ports: - "3306:3306" env_file: - ./docker_compose_files/mysql.env volumes: - ./docker_compose_files/mysql/data:/var/lib/mysql - ./docker_compose_files/mysql/logs:/var/log/mysql - ./docker_compose_files/mysql/conf:/etc/mysql/conf.d networks: - webnetworks: web:
一键部署
docker-compose up
关键词:
-
全球今热点:docker_day04:Dockerfile docker私有仓库 dockercompose介绍 dockercompose部署 一件部署路飞项
回顾 容器其他操作dockerstart容器id启动容器dockerstop容器id停止容器dockerrm容器id 删除容器dockerrm`dockerps-a
来源: 当前热讯:c++打卡第五天
ChatGPT如何做投资?
全球今热点:docker_day04:Dockerfile docker私有仓库 dockercompose介绍 dockercompose部署 一件部署路飞项
全球关注:【金融街发布】证监会:取消期货从业资格管理 强化期货从业人员的事中事后监管
世界速讯:20万元买特斯拉?陶琳甩出5张图:中国价格全球最低
天天速看:高通垄断全球基带!中国紫光展锐排第4:2G/3G/4G/5G都很难
环球热议:仙履奇缘3中文版央视网 仙履奇缘3国语版免费
世界速讯:day01-项目介绍与环境搭建
全球快资讯:美光被审查 国产存储芯片崛起的机会来了?
1L体积塞进电源!联想推出小新mini主机:性能超越M2
【时快讯】403秒!中国"人造太阳"又创世界纪录:领先世界5年
环球微动态丨中国巡天太空望远镜明年底发射 将参与近地小行星防御撞击任务
全球讯息:方向导数
高中语文小说情节的作用_高中语文小说的情节题的答题方法 题型
环球快资讯:旺——消费信心加速回归
全球看热讯:可以攒钱了!任天堂Switch 2最快年底发布
实时:14年老牌网站 音悦台官宣回归后向EXO、坤音道歉:欠债一定还
当前快播:《塞尔达传说:王国之泪》实机中黑皮女子是谁:海利亚女神附身塞尔达?
今日精选:亚马逊加入战局:推出大语言模型“泰坦”为客户提供便宜芯片
【全球快播报】藏族女子出嫁带硬核嫁妆走红 价值百万只是一部分:男方根本不用巨额彩礼
今日播报!Nvidia Tensor Core-MMA PTX编程入门
中诚信大湾区信用债券指数系列正式发布
上榜门槛全线上升!2023年一季度粤港澳湾区房企销售榜发布
当前聚焦:通用官宣放弃苹果CarPlay 车企车机自主化势在必行?
等等党措手不及!内存、SSD现货价已开始反弹:三星/美光疯狂减产奏效了
腾讯回应工信部最新要求:微信QQ故障已批评和处罚相关负责人
全球热消息:员工用指纹膜帮同事打卡被开除 不服起诉 法院:不诚信 公司合法解除
天天微动态丨干掉车顶大鼓包!禾赛科技发布舱内激光雷达:高度仅25mm
MySQL学习笔记-索引
如何通过Java程序合并Word文档
观焦点:使用appuploader工具发布证书和描述性文件教程
Vue之 vue-router
记录-Vue.js模板编译过程揭秘:从模板字符串到渲染函数
男子当着7岁女孩面刺56刀杀死前女友:已执行死刑,一审时曾被判死缓
当前讯息:七彩虹五大RTX 4070开卖:水神/火神5699元!神秘新卡加量不加价
号称“不泄密” 微信键盘Windows版上线:不支持Win7
4799元的RTX 4070显卡上市 厂商不急于增产:库存还没完 不想降价
碎片化一地鸡毛!安卓14推送:安卓13用户量仍少的可怜
全球动态:微信功能异常大量用户中招!工信部指导腾讯:重要业务安全稳定
axiom——一款基于云的分布式网络安全扫描工具框架
低代码起势,程序员闷头开发的日子结束了
世界观速讯丨美原油交易策略:油价受阻于200日均线,关注IEA月报
焦点速看:恒生指数14日收涨0.46% 有色金属行业领涨
AITO问界M5智驾版将亮相上海国际车展 余承东:双天花板级体验
世界看热讯:中国药卖给美国人有多难
12元在家看国产科幻大片!《流浪地球2》全网上线:爱优腾会员不免费
当前通讯!7年了!AMD CUDA杀手ROCm终于登陆Windows、支持游戏显卡
俄罗斯发力自主OS系统 无奈碎片化:Linux就有19种
无极县政府网 无极县政府
实时焦点:用 Go 剑指 Offer 31. 栈的压入、弹出序列 (辅助栈)
企业内部培训网站为例,探索云上成本优化
世界新资讯:【财经分析】房企融资边际回暖 结构分化背景下择券仍需审慎
当前通讯!收评:沪指涨0.32%创年内收盘新高 半导体行业掀涨停潮
速读:全国性能最强!腾讯发布高性能算力集群:专为AI大模型训练准备
10碟充氦!希捷首款22TB机械硬盘发布:价格给力
水花消失术再现!全红婵、陈芋汐夺得2023跳水世界杯首金
天天消息!仅重126g!阿里云推出无影云电脑“魔方AS05”:7个全尺寸接口
每日视讯:2450CVIA刷新亮度天花板!当贝X5旗舰投影仪图赏
武磊谈补发2021中国金球奖:荣誉将激励我为中国足球做更多贡献
天天新动态:Huffman实现
即时:《安富莱嵌入式周报》第309期:开源脑机接口套件,三相多电平逆变器,开源电位仪,单片机并行计算,蓝牙市场分析报告,AI密码破解,nRF54H2发布,Z-W
全球微动态丨python 之 session鉴权的处理
【世界播资讯】git中 commit 和 pull 的先后顺序问题会产生多余的merge记录
全球微资讯!#POWERBI 度量值动态格式字符串,利用动态格式,实现百分数智能缩位(powerbi4月重磅更新功能)
高亮度+顶级芯 旗舰更进一步!当贝X5激光投影仪评测:2450CVIA带来震撼视觉体验
焦点速递!免费、不用注册、支持中文!ChatGPT最强竞品爆火:一手实测体验在此
快报:国产FPS《边境》发布之路坎坷:服务器出现紧急BUG
五一火车票明日开售:五一假期连休5天
世界新动态:徕卡味儿十足!小米13 Ultra摄影套装亮相:手机秒变相机
山东省高级人民法院电话簿(山东省高级人民法院电话)
当前报道:全面解析反欺诈(羊毛盾)API,助你识别各类欺诈风险
天天实时:T-SQL基础教程Day2
世界热文:DXO拍照得分全球第一!OPPO Find X6 Pro卖疯 销量同比增长129%
世界快资讯丨失业大军涌入外卖 骑手收入腰斩:拼了一天赚400 却被罚1000
上亿广场里排队20分钟等餐?为了这一幕,新市府已经等了三年
.NET7使用HttpClient实现查询天气预报接口
天天亮点!大二男生靠打工奖学金穷游37城:没问家里要过1分钱
焦点热门:准备好钱包 比亚迪百万豪车仰望U8四天后开售:超跑U9一同亮相
Redmi Note 12 Turbo首销过后还在狂卖!卢伟冰都没想到
变化极大的iOS 17要来了!苹果内测iOS 16.6系统:或为绝唱更新
今年五一档杀疯了 16部国产大片扎堆:好莱坞大片中国市场遇冷 不符合国人审美
世界看热讯:签约!年产45万吨,林州林钢将建亚洲单体最大铸管生产车间
世界时讯:SpringBoot 如何保证接口安全?老鸟们都是这么玩的
全面数字化时代,国有大型银行如何走好金融创新之路?
速讯:PHP 备忘清单_开发速查表分享
今日热议:如何快速开发软件?这篇文章说明白了
世界微速讯:2023年百大影响力人物:马斯克、TikTok周受资等入榜
公司回应员工未及时回复收到被辞退:顶撞领导 不服从管理
【全球时快讯】量旋科技进军超导量子计算!三大新品、软硬件全流程搞定
世界最资讯丨3年前老机型没被抛弃!一加8系列官宣适配ColorOS 13.1
男子机动车道上骑鸵鸟还拍视频炫耀:系养殖基地训练师、已被处理
世界百事通!16岁女孩骑摩托载21岁女伴不幸遇难,生前网友曾劝“危险”被怼
ntuser是什么文件?ntuser文件可以删除吗?
宏基笔记本电脑风扇设置在哪里?宏基笔记本电脑风扇声音大怎么解决?
摩托罗拉xt685什么时候上市的?摩托罗拉xt685手机参数
显卡金手指是什么?显卡金手指磨损有影响吗?
266.58显卡驱动没法识别硬件是怎么回事?266.58显卡驱动没法识别硬件怎么解决?
全球快报:更安全、更低耗的微服务架构改造之道
PDCA循环模型——如何用同样的时间做更多的事?【No.1 】
聚焦:山西焦化:公司2023年第一季度报告预约披露时间为2023年4月25日