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、继…...
vue 求助
这个浅灰色的背景框怎么改啊,没招了...
10G以太网子系统实战:从XGMII到AXI-Stream的高效数据传输
1. 10G以太网子系统基础入门 第一次接触10G以太网子系统时,我被它惊人的数据传输能力震撼到了。想象一下,这相当于每秒传输10亿个数据比特,比传统千兆网快了整整10倍!在实际项目中,我发现10GBASE-R是最常见的实现方式&…...
Modelsim 10.7/2019.5 破解后启动报错:HostID格式异常排查与修复
1. 破解后启动报错的典型现象 最近在折腾Modelsim 10.7和2019.5版本时,遇到了一个让人抓狂的问题:明明按照网上的破解教程一步步操作,环境变量也设置正确,但启动软件时还是弹出了license报错。这个错误提示特别有意思,…...
迎战2026知网最严查重:零成本脱“AI味”!10款免费工具硬核排雷红黑榜
四月一到,查重和AIGC检测成了两座大山。 自己熬夜敲的字被判AI生成,或者润色后满篇通红,这绝望感谁懂? 为了搞定论文降aigc这个大坑,我拿手头几篇废稿,去市面上热门的10款降ai率工具滚了一圈。今天这篇吐…...
TranslucentTB终极指南:Windows任务栏透明化专业解决方案
TranslucentTB终极指南:Windows任务栏透明化专业解决方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB TranslucentTB是一款…...
工业物联网的命脉:为什么时序数据库是不可或缺的?
为何实时处理能力逐渐成为物联网数据库选型的关键? 对于投身物联网转型的企业而言,数字化的初期目标通常是清晰且务实的:完成设备接入,保证数据能稳定写入、完整保存。 但随着物联网从概念验证走向大规模部署,情况发…...
你的Xbox手柄电量还能撑多久?解决游戏中断的电量管家
你的Xbox手柄电量还能撑多久?解决游戏中断的电量管家 【免费下载链接】XB1ControllerBatteryIndicator A tray application that shows a battery indicator for an Xbox-ish controller and gives a notification when the battery level drops to (almost) empty.…...
Tsuru日志聚合性能优化:10个提升吞吐量与降低延迟的终极技巧
Tsuru日志聚合性能优化:10个提升吞吐量与降低延迟的终极技巧 【免费下载链接】tsuru Open source and extensible Platform as a Service (PaaS). 项目地址: https://gitcode.com/gh_mirrors/ts/tsuru Tsuru作为开源且可扩展的Platform as a Service (PaaS)平…...
Dunst未来发展方向:探索轻量级通知守护进程的创新路线图
Dunst未来发展方向:探索轻量级通知守护进程的创新路线图 【免费下载链接】dunst Lightweight and customizable notification daemon 项目地址: https://gitcode.com/gh_mirrors/du/dunst Dunst作为一款轻量级且高度可定制的通知守护进程,始终致力…...
3DGS新手避坑指南:COLMAP命令行参数选错,你的Gaussian Splatting训练就白费了
3DGS新手避坑指南:COLMAP参数选择对Gaussian Splatting训练的关键影响 当你第一次接触3D Gaussian Splatting(3DGS)时,可能会被COLMAP预处理环节的各种参数搞得晕头转向。明明按照教程一步步操作,最后生成的3D模型却支…...
