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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HarmonyOS 5.0】从0到1开发购物应用App(二):登录页对接口

【HarmonyOS Arkts笔记】http网络请求封装 【HarmonyOS Arkts笔记】ohos.data.preferences用户首选项实现存储信息 登录页 点击登录按钮调用login()方法 import { promptAction, router } from kit.ArkUI; import loginApi from "../../api/login" import Prefere…

玩转大语言模型——ollama导入huggingface下载的模型

ollama导入huggingface模型 前言gguf模型查找相关模型下载模型 导入Ollama配置参数文件导入模型查看导入情况 safetensfors模型下载模型下载llama.cpp配置环境并转换 前言 ollama在大语言模型的应用中十分的方便,但是也存在一定的问题,比如不能使用自己…

DFS之迭代加深、双向DFS、IDA*

迭代加深 迭代加深&#xff1a; 170. 加成序列 满足如下条件的序列 X X X&#xff08;序列中元素被标号为 1 、 2 、 3 … m 1、2、3…m 1、2、3…m&#xff09;被称为“加成序列”&#xff1a; X [ 1 ] 1 X[1]1 X[1]1 X [ m ] n X[m]n X[m]n X [ 1 ] < X [ 2 ] < …

Ansible之批量管理服务器

文章目录 背景第一步、安装第二步、配置免密登录2.1 生成密钥2.2 分发公钥2.3 测试无密连接 背景 Ansible是Python强大的服务器批量管理 第一步、安装 首先要拉取epel数据源&#xff0c;执行以下命令 yum -y install epel-release安装完毕如下所示。 使用 yum 命令安装 an…

调和级数不为整数的证明

文章目录 1. 问题引入2. 证明2.1 引理12.2 引理22.3 引理3&#xff1a;2.4 核心证明&#xff1a; 3. 参考 1. 问题引入 s ( n ) 1 1 2 1 3 ⋯ 1 n , n ∈ N ∗ , n ≥ 2 s(n) 1\frac{1}{2}\frac{1}{3}\cdots\frac{1}{n}, \quad \\n \in N^*, n \ge2 s(n)121​31​⋯n1​,…

【Linux网络编程】第二十二弹---深入理解 I/O 多路转接之 epoll:系统调用、工作原理、代码演示及应用场景

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、I/O 多路转接之 epoll 1.1、epoll 初识 1.2、epoll 的相关系统调用 1.2.1、epoll_create 1.2.2、epol…

pytest 常用插件

pytest 提供了许多功能强大的插件来增强测试体验和执行能力。以下是一些常用的 pytest 插件介绍&#xff0c;并结合 pytest.main() 进行使用的示例。 1. pytest-xdist pytest-xdist 插件用于并行化测试的执行&#xff0c;可以将测试分配到多个 CPU 核心并行运行&#xff0c;从…

openwrt 常见编译问题及编译提速

目录 friendlywrt介绍官方编译流程编译问题git clone errorbusybox和其他包冲突GCC编译错误ERROR: package/feeds/packages/gcc failed to build.手动编译编译提速ccache修改makefile去掉一些不必要的依赖固件定制:增加已经编译好的应用rootfs生成过程REF本文以friendlywrt22-…

Angular结合C#

在 Angular 2 及以上版本与 C#结合使用 REST API 的示例中&#xff0c;我们将分别展示前端 Angular 服务和后端 C# Web API 的实现。 一、前端&#xff1a;Angular 服务 生成 Angular 服务 使用 Angular CLI 生成一个新的服务&#xff0c;例如user.service.ts&#xff1a; ng…

双向列表的实现(C++)

一.实现思路 主要是一个空间存储一个数值&#xff0c;然后为了索引后面的数据单元和前面的数据单元&#xff0c;所以在每个空间里面还要存储前面和后面数据单元的指针&#xff0c;就形成了每个数据单元 后面就是要管理的是双向列表的头结点和尾节点&#xff0c;方便实现后面的头…

国产信创实践(国能磐石服务器操作系统CEOS +东方通TongHttpServer)

替换介绍&#xff1a; 国能磐石服务器操作系统CEOS 对标 Linux 服务器操作系统&#xff08;Ubuntu, CentOS&#xff09; 东方通TongHttpServer 对标 Nginx 负载均衡Web服务器 第一步&#xff1a; 服务器安装CEOS映像文件&#xff0c;可直接安装&#xff0c;本文采用使用VMware …

Linux——修改USB网卡设备节点名称

修改驱动&#xff1a; 测试&#xff1a; 参考资料&#xff1a; https://blog.csdn.net/ablexu2018/article/details/144868950

上手体验微软全新整合的王炸平台Fabric

体验确实不错&#xff0c;微软强大的生态能力。 把可视化&#xff0c;数仓&#xff0c;数据胡&#xff0c;数据工厂&#xff0c;机器学习&#xff0c;数据监控等技术都整合到一个平台了。所有数据全都存储在统一的one lake数据中心&#xff0c;消除数据孤岛问题。而且不同角色可…

浅析PCIe链路均衡技术原理与演进

在现代计算机硬件体系的持续演进中&#xff0c;PCIe技术始终扮演着核心角色&#xff0c;其作为连接 CPU 与各类周边设备的关键高速通信链路&#xff0c;不断推动着计算机性能边界的拓展。而 PCIe Link Equalization均衡技术&#xff0c;作为保障数据在高速传输过程中准确性与稳…

东京大学联合Adobe提出基于指令的图像编辑模型InstructMove,可通过观察视频中的动作来实现基于指令的图像编辑。

东京大学联合Adobe提出的InstructMove是一种基于指令的图像编辑模型&#xff0c;使用多模态 LLM 生成的指令对视频中的帧对进行训练。该模型擅长非刚性编辑&#xff0c;例如调整主体姿势、表情和改变视点&#xff0c;同时保持内容一致性。此外&#xff0c;该方法通过集成蒙版、…

Scala语言的软件工程

Scala语言的软件工程 引言 在当今软件开发领域&#xff0c;编程语言的选择对于项目的成功与否至关重要。Scala&#xff0c;作为一种具有函数式编程和面向对象编程特性的强大语言&#xff0c;近年来在开发者社区中获得了越来越高的认可。Scala的灵活性和表达能力使其成为大规模…

Linux Elasticsearch kibana ik分词器 安装部署和快照恢复

Elasticsearch安装部署 1.下载安装包 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz 2.解压到opt目录下 tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /opt/ 3.重命名 mv elasticsearch-7.8.0 es 4.添…

Wireshark 学习笔记1

1.wireshark是什么 wireshark是一个可以进行数据包的捕获和分析的软件 2.基本使用过程 &#xff08;1&#xff09;选择合适的网卡 &#xff08;2&#xff09;开始捕获数据包 &#xff08;3&#xff09;过滤掉无用的数据包 &#xff08;4&#xff09;将捕获到的数据包保存为文件…

学习threejs,导入babylon格式的模型

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.BabylonLoader babyl…

Redis缓存穿透、缓存击穿、缓存雪崩

缓存穿透 定义&#xff1a; 查询一个不存在的数据&#xff0c;mysql查询不到数据也不会直接写入缓存&#xff0c;就会导致每次请求都查数据库 例子&#xff1a; 一个get请求&#xff1a;api/news/getById/-1 解决方案 方案一&#xff1a;缓存空数据 缓存空数据&#xff0c;查…