当前位置: 首页 > news >正文

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.lryc.cn/news/518166.html

相关文章:

  • mysql的一些函数及其用法
  • NO.3 《机器学习期末复习篇》以题(问答题)促习(人学习),满满干huo,大胆学大胆补!
  • 黑马跟学.苍穹外卖.Day03
  • js -音频变音(听不出说话的人是谁)
  • 鸿蒙UI(ArkUI-方舟UI框架)
  • 常见的http状态码 + ResponseEntity
  • pikachu - Cross-Site Scripting(XSS)
  • 操作系统之文件系统的基本概念
  • 深入探讨 Android 中的 AlarmManager:定时任务调度及优化实践
  • 西电-算法分析-研究生课程复习笔记
  • 编译时找不到需要的库,如何在PyCharm中为你的项目添加需要的库
  • ip addr 命令给Linux网络接口配置多个IP地址值
  • C#语言的数据库编程
  • 时频分析之S变换
  • 第二十八周学习周报
  • SurfaceFlinger MessageQueue原理
  • component-动态控制 div width 的值 根据传入的变量决定width的值 vue
  • C#中的常用集合
  • 插入实体自增主键太长,mybatis-plaus自增主键
  • 晨辉面试抽签和评分管理系统之一:考生信息管理和编排
  • 【MySQL】MVCC详解, 图文并茂简单易懂
  • 中国数字化发展的问题与机会
  • 【ROS2】☆ launch之Python
  • 如何稳定使用 O1 / O1 Pro,让“降智”现象不再困扰?
  • zookeeper监听机制(Watcher机制)
  • docker 启动 nacos 单机模式
  • 学习threejs,导入babylon格式的模型
  • 03.MPLS静态LSP配置实验
  • 程序血缘分析技术在工商银行软件工程中的应用
  • 计算机毕业设计Django+Tensorflow音乐推荐系统 音乐可视化 卷积神经网络CNN LSTM音乐情感分析 机器学习 深度学习 Flask 大