Docker入门之docker基本命令
Docker入门之docker基本命令
官方网站:https://www.docker.com/

1. 拉取官方镜像并创建容器(以redis为例)
- 拉取官方镜像
docker pull redis
# 如果不需要添加到自定义网络使用这个命令,如需要,直接看第二步
docker run --name redis-container -d -p 6379:6379 redis
- 创建容器,容器名为:
--name redis-container -d后台运行-p端口映射(宿主机端口:容器端口)redis:镜像名
2.创建自定义网络
- 创建(网络名:
my_network)
docker network create my_network
- 创建容器并添加自定义网络
docker run -d --name redis_container --network my_network redis:latest
- 添加redis容器到自定义网络:
--network my_network - 其它命令参考上文
3.项目镜像和容器构建
1. 创建Dockerfile文件,一般在项目根目录创建
以一个python django项目为例
# 使用 Python 官方的 Python 3 镜像作为基础镜像
FROM python:3.8
# 设置 pip 源为阿里云,如果需要
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 设置工作目录为 /app
WORKDIR /app
# 拷贝项目代码到容器中的 /app 目录
COPY . /app
# 安装项目依赖
RUN pip install -r requirements.txt
# 安装 uwsgi
RUN pip install uwsgi
# 启动 uwsgi,这个CMD内的命令会直接在容器中执行
CMD ["uwsgi", "--ini", "/app/uwsgi.ini"]
2. 项目镜像构建
docker build -t my-image .
-t用于自定义镜像标签,如果不需要,docker会自动生成.点表示使用当前目录的Dockerfile
3.项目容器构建
docker run -d --name my-container --network my_network -v /www/server/my-django:/app -p 9000:9000 -e REDIS_HOST=redis-container -e REDIS_PORT=6379 my-image
-v /www/server/my-django:/app
表示Docker 将主机上的 /www/server/my-django 目录与容器内的 /app 目录进行关联,关联后可直接在主机上对容器内app目录进行管理
-e REDIS_HOST=redis-container -e REDIS_PORT=6379
-e 选项用于设置环境变量
这里设置了一个名为 REDIS_HOST 的环境变量,其值为 redis-container
REDIS_PORT=6379这条命令设置了一个名为 REDIS_PORT 的环境变量,其值为 6379
- 需要添加MySQL或其它自定义网络的情况,同redis容器一样操作
- 其它命令参考上文
4.打包容器、镜像
打包容器
- 压缩包名:my-container-image.tar
# 用容器生成镜像
docker commit my-container my-container-image
# 镜像打包成压缩包
docker save -o my-container-image.tar my-container-image
压缩包创建镜像
docker load -i /my-container-image.tar
其它常用:
- 查看所有镜像:
docker images
- 删除镜像:
image_tag可以是镜像id或者镜像标签
docker rmi image_tag
- 查看所有在运行的容器:
docker ps
- 查看所有容器:
docker ps -a
- 删除容器:
container_name可以是容器id或者容器名
docker rm container_name
- 查看容器运行日志
docker logs my-container
- 进入容器
docker exec -it my-container bash
- 退出容器(前提是进入容器)
exit
其它更多命令请移步官方:https://www.docker.com/
docker-compose
以上是项目中需要使用docker的一个简单梳理,当然,如果感觉太复杂,也可以使用docker-compose进行一次性创建,docker-compose需要另外安装
1.创建docker-compose.yml
- 同Dockerfile一样,一般在项目根目录创建
services:my-container:image: my-image # 后端镜像ports:- "9000:9000" # 映射端口 networks:- my_network #自定义网络名redis-container:image: redisnetworks:- my_networknetworks:my_network: # 定义自定义网络
2.安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 需要为其添加执行权限如果没有
sudo chmod +x /usr/local/bin/docker-compose
3.创建
docker-compose up -d
4.删除
docker-compose down
最后
最后是附上本人使用docker部署的一个线上服务供大家消遣,欢迎访问:http://www.chensc.com.cn/
相关文章:
Docker入门之docker基本命令
Docker入门之docker基本命令 官方网站:https://www.docker.com/ 1. 拉取官方镜像并创建容器(以redis为例) 拉取官方镜像 docker pull redis# 如果不需要添加到自定义网络使用这个命令,如需要,直接看第二步 docker r…...
mysql的一些函数及其用法
mysql 1-来自于leetcode1517的题目 表: Users------------------------ | Column Name | Type | ------------------------ | user_id | int | | name | varchar | | mail | varchar | ------------------------已知一个表,它的…...
NO.3 《机器学习期末复习篇》以题(问答题)促习(人学习),满满干huo,大胆学大胆补!
目录 🔍 1. 对于非齐次线性模型 ,试将其表示为齐次线性模型形式。 编辑 🔍 2. 某汽车公司一年内各月份的广告投入与月销量数据如表3-28所示,试根据表中数据构造线性回归模型,并使用该模型预测月广告投入为20万元时…...
黑马跟学.苍穹外卖.Day03
黑马跟学.苍穹外卖.Day03 苍穹外卖-day03课程内容1. 公共字段自动填充1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3 步骤三 1.4 功能测试1.5 代码提交 2. 新增菜品2.1 需求分析与设计2.1.1 产品原型2.1.2 接口设计2.1.3 表设计 2.2 代码开发2.2.1 文件上…...
js -音频变音(听不出说话的人是谁)
学习参考来源: https://zhuanlan.zhihu.com/p/634848804 https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Audio_API 实际效果: http://www.qingkong.zone/laboratory?typeaudio-confusion 前言 本文内容可结合上面学习参考来源,结合…...
鸿蒙UI(ArkUI-方舟UI框架)
参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/arkts-layout-development-overview-V13 ArkUI简介 ArkUI(方舟UI框架)为应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能ÿ…...
常见的http状态码 + ResponseEntity
常见的http状态码 ResponseStatus(HttpStatus.CREATED) 是 Spring Framework 中的注解,用于指定 HTTP 响应状态码。 1. 基本说明 HttpStatus.CREATED 对应 HTTP 状态码 201表示请求成功且创建了新的资源通常用于 POST 请求的处理方法上 2. 使用场景和示例 基本…...
pikachu - Cross-Site Scripting(XSS)
pikachu - Cross-Site Scripting(XSS) 声明! 笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人无关,切勿触碰法律底线,否则后果自负&#x…...
操作系统之文件系统的基本概念
目录 用户和磁盘视角的文件 文件控制块(FCB)和索引结点(inode) 文件的操作 创建文件(create系统调用) 写文件(write系统调用) 读文件(read系统调用) 重…...
深入探讨 Android 中的 AlarmManager:定时任务调度及优化实践
引言 在 Android 开发中,AlarmManager 是一个非常重要的系统服务,用于设置定时任务或者周期性任务。无论是设置一个闹钟,还是定时进行数据同步,AlarmManager 都是不可或缺的工具之一。然而,随着 Android 系统的不断演…...
西电-算法分析-研究生课程复习笔记
24年秋的应该是张老师最后一次用卷面考试,他说以后这节课的期末考试都是在OJ上刷题了张老师上课还挺有意思的,上完之后能学会独立地思考算法设计问题了。整节课都在强调规模压缩这个概念,考试也是考个人对这些的理解,还挺好玩的哈…...
编译时找不到需要的库,如何在PyCharm中为你的项目添加需要的库
丰富的库支持是 Python 语言的一大特点,但是在使用 PyCharm 进行Python 代码编译的时候,遇到一些需要使用到的库提示不能解析时,该如何添加呢? 比如下图所示的代码,可以看到需要使用 selenium、b4、jieba 这些库&…...
ip addr 命令给Linux网络接口配置多个IP地址值
问一下Chatgpt 怎么使用ip addr 命令给Linux网络接口配置多个IP地址值 根据Chatgpt的提示执行了命令,命令执行成功,看下执行结果。 ifconfig 命令查看接口IP地址 ip addr show 命令查看接口IP地址...
C#语言的数据库编程
C#语言的数据库编程 在现代软件开发中,数据库是不可或缺的一部分。无论是企业级应用还是个人项目,数据的存储与管理都是程序的核心功能之一。C#作为一种强类型、面向对象的编程语言,广泛应用于Windows平台的开发,尤其是在构建与数…...
时频分析之S变换
S变换的提出 1996年,由R.G Stockwell 提出了S变换,和其他时频分析工具一样,通过S变换,我们可以同时从时域以及频域观察一个信号的能量分布。S变换融合了短时傅里叶变换和小波变换的优点。关于S变换,最早发表于TSP上的…...
第二十八周学习周报
目录 摘要Abstract1 GFPGAN1.1 总体结构1.2 实验研究1.3 代码分析 总结 摘要 本周主要的学习内容是GFPGAN模型。GFPGAN是一种基于生成对抗网络(GAN)的模型,其利用封装在预训练的人脸GAN中的丰富多样的先验进行人脸图像的修复。这种生成面部先验(GFP&…...
SurfaceFlinger MessageQueue原理
SurfaceFlinger MessageQueue 有2个作用: 处理SurfaceFlinger INVALIDATE、REFRESH事件管理SurfaceFlinger主线程挂起和恢复 SurfaceFlinger::run() { while (true) { mEventQueue->waitMessage(); } } waitMessage {do {IPCThreadState::self()->flushComm…...
component-动态控制 div width 的值 根据传入的变量决定width的值 vue
1.实现 根据参数的值,div显示不同的长度 <div class"node-line" :style"lineProgress"></div> <script>export default {name: "trainSummaryInfo",data(){return{linePercentage:200,}},computed:{lineProgress…...
C#中的常用集合
目录 一、动态数组ArrayList 二、List 三、栈(Stack) 四、队列(Queue) 五、字典(Dictionary),int> 一、动态数组ArrayList ArrayList 是 C# 中提供的一种动态数组类,位于命名空间 Syste…...
插入实体自增主键太长,mybatis-plaus自增主键
1、问题 spring-boot整合mybtais执行insert语句时,主键id为长文本数据。 2、分析问题 1)数据库主键是否自增 2)数据库主键的种子值设置的多少 3、解决问题 1)数据库主键设置的时自增 3)种子值是1 所以排查是数据库的问题 4、继…...
三步打造完美Jellyfin番剧库:Bangumi插件实战指南
三步打造完美Jellyfin番剧库:Bangumi插件实战指南 【免费下载链接】jellyfin-plugin-bangumi bgm.tv plugin for jellyfin 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-plugin-bangumi 你是否曾为Jellyfin中的动漫收藏而烦恼?看着那些…...
【SpringAIAlibaba新手村系列】(12)RAG 检索增强生成技术
第十二章 RAG 检索增强生成技术 版本标注 Spring AI: 1.1.2Spring AI Alibaba: 1.1.2.0 章节定位 本章的 RetrievalAugmentationAdvisor VectorStore 仍然是经典 RAG 入门方案。但 Spring AI Alibaba 1.1.2.x 官方代码已经进一步演进到 RAG Workflow 思路,典型流程…...
人工改写和降AI工具哪个更划算?花了一周测完给你结论
这个问题我认真测过:同一篇论文,用人工改写和用降AI工具处理,分别花了多少时间、多少钱、最终效果如何。结论有点出乎意料。 结论:降AI工具性价比远高于人工改写,唯一例外是对语言质量有极高要求的顶刊投稿。推荐的工…...
ImportExcel与数据库集成:如何实现SQL数据到Excel的无缝转换
ImportExcel与数据库集成:如何实现SQL数据到Excel的无缝转换 【免费下载链接】ImportExcel PowerShell module to import/export Excel spreadsheets, without Excel 项目地址: https://gitcode.com/gh_mirrors/im/ImportExcel ImportExcel是一款强大的Power…...
Windows Server 2012系统FileZilla搭建FTP服务器
一、FTP介绍 1.FTP服务器简介 FTP 服务器是基于文件传输协议(File Transfer Protocol)搭建的文件共享服务,主要用于在网络中实现客户端与服务器之间的文件上传、下载及管理。它支持多用户访问、权限控制、目录隔离等功能,广泛应用…...
新手入门指南:在快马平台上用openclaw重启版本实现首个爬虫项目
最近在学习网络爬虫,发现openclaw重启版本对新手特别友好,于是尝试在InsCode(快马)平台上做了一个简单的新闻头条抓取项目。整个过程比想象中顺利,分享下我的学习路径和踩坑经验。 环境准备与库安装 传统爬虫项目最头疼的就是环境配置&#x…...
212_视觉处理的基石:深入浅出卷积层(Convolutional Layer)
在处理图像时,传统的全连接网络(MLP)会将图像展平,这会丢失空间位置信息。卷积层则不同,它像一个“放大镜”在图像上滑动,提取局部特征。1. 为什么图像需要卷积?平移不变性:不管猫在…...
【Linux】静态库(.a) + 动态库(.so)
Linux 静态库(.a) 动态库(.so) 统一示例: 库名:test → 静态库 libtest.a,动态库 libtest.so源文件:test.c、main.c头文件路径:./include库文件路径:./lib用户家目录路径:/home/youruser/yourl…...
2025最权威的五大AI论文方案推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在学术写作跟内容创作的领域当中,要降低AI生成内容的可被检测出来的概率…...
Windows上安装安卓应用的最佳方案:APK-Installer完整指南
Windows上安装安卓应用的最佳方案:APK-Installer完整指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为Windows上运行安卓应用而烦恼吗?…...
