Docker基本使用

一、安装

参考黑马程序员的讲义

‍‌​‌​‌​⁠‬​⁠​​​‍​‬​​‌​ ‌‌​​‍​ ​ ​‌​​‍‍‍‌​​安装Docker - 飞书云文档

二、原理

去docker的镜像仓库中下载镜像到本地镜像,通过本地镜像复制到容器中,每个容器都是独立的。

三、docker run

其中-e的环境变量去docker hub官网中查对应镜像的介绍中,environment的一项中有写

四、docker常见命令

Docker Docs

命令

说明

文档地址

docker pull

拉取镜像

docker pull

docker push

推送镜像到DockerRegistry

docker push

docker images

查看本地镜像

docker images

docker rmi

删除本地镜像

docker rmi

docker run

创建并运行容器(不能重复创建)

docker run

docker stop

停止指定容器

docker stop

docker start

启动指定容器

docker start

docker restart

重新启动容器

docker restart

docker rm

删除指定容器

docs.docker.com

docker ps

查看容器

docker ps

docker logs

查看容器运行日志

docker logs

docker exec

进入容器

docker exec

docker save

保存镜像到本地压缩文件

docker save

docker load

加载本地压缩文件到镜像

docker load

docker inspect

查看容器详细信息

docker inspect

# 设置容器开机自启 docker update --restart=always [容器名/容器id] # Docker开机自启 systemctl enable docker

五、设置命令别名

当我们有的命令太长了,我们可以考虑使用这个方式

修改/root/.bashrc文件

记得保存后要source该文件

六、数据卷

1.体系结构

 ​​‍​‬​ ‍​‌‌​⁠​‌​​‬​‬​⁠‌⁠ ​​ ‌​‌⁠ ​ ​‍​​​​‌​‌‬​​​day02-Docker - 飞书云文档

数据卷类似Vue的挂在,容器和宿主机的文件是同步增删的。

2.常用命令

命令

说明

文档地址

docker volume create

创建数据卷

docker volume create

docker volume ls

查看所有数据卷

docs.docker.com

docker volume rm

删除指定数据卷

docs.docker.com

docker volume inspect

查看某个数据卷的详情

docs.docker.com

docker volume prune

清除数据卷

docker volume prune

# 首先创建容器并指定数据卷,注意通过 -v 参数来指定数据卷 docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx # 查看数据卷 docker volume ls # 查看数据卷详情 docker volume inspect html # 进入容器内部 docker exec -it nginx bash

挂载示例

容器要挂载哪些目录,你看你常用哪些,就在官方文档查哪些的路径,挂就完了

# 创建并运行新mysql容器,挂载本地目录 docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ -v ./mysql/data:/var/lib/mysql \ -v ./mysql/conf:/etc/mysql/conf.d \ -v ./mysql/init:/docker-entrypoint-initdb.d \ mysql

七、自制镜像

1.体系结构

我们要从0部署一个Java应用,大概流程是这样:

  • 准备一个linux服务(CentOS或者Ubuntu均可)
  • 安装并配置JDK
  • 上传Jar包
  • 运行jar包

那因此,我们打包镜像也是分成这么几步:

  • 准备Linux运行环境(java项目并不需要完整的操作系统,仅仅是基础运行环境即可)
  • 安装并配置JDK
  • 拷贝jar包
  • 配置启动脚本

2.dockerfile镜像打包常用命令

指令

说明

示例

FROM

指定基础镜像

FROM centos:6

ENV

设置环境变量,可在后面指令使用

ENV key value

COPY

拷贝本地文件到镜像的指定目录

COPY ./xx.jar /tmp/app.jar

RUN

执行Linux的shell命令,一般是安装过程的命令

RUN yum install gcc

EXPOSE

指定容器运行时监听的端口,是给镜像使用者看的

EXPOSE 8080

ENTRYPOINT

镜像中应用的启动命令,容器运行时调用

ENTRYPOINT java -jar xx.jar

通常打包Linux和jdk这种每个项目都要做的功能都有别人为我们整合好的Layer

八、网络

容器的网络IP其实是一个虚拟的IP,其值并不固定与某一个容器绑定,如果我们在开发时写死某个IP,而在部署时很可能MySQL容器的IP会发生变化,连接会失败。
所以我们需要自定义一个网络,直接根据容器名进行访问而不是ip,容器名不会变

命令

说明

文档地址

docker network create

创建一个网络

docker network create

docker network ls

查看所有网络

docs.docker.com

docker network rm

删除指定网络

docs.docker.com

docker network prune

清除未使用的网络

docs.docker.com

docker network connect

使指定容器连接加入某网络

docs.docker.com

docker network disconnect

使指定容器连接离开某网络

docker network disconnect

docker network inspect

查看网络详细信息

docker network inspect

Read more

数组去重性能优化:为什么Set和Object哈希表的效率最高

数组去重性能优化:为什么Set和Object哈希表的效率最高

目录 数组去重性能优化:为什么Set和Object哈希表的效率最高 一、数组去重的基本概念 二、常见的数组去重方法 三、Set和Object哈希表综合复杂度为O(n)的秘密 1、数据结构区别 2、Set去重的底层原理 3、Set去重的鲁棒性 4、Set去重的局限性 四、总结         作者:watermelo37         ZEEKLOG万粉博主、华为云云享专家、阿里云专家博主、腾讯云、支付宝合作作者,全平台博客昵称watermelo37。         一个假装是giser的coder,做不只专注于业务逻辑的前端工程师,Java、Docker、Python、LLM均有涉猎。 --------------------------------------------------------------------- 温柔地对待温柔的人,包容的三观就是最大的温柔。 --------------------------------------------------------------------- 数组去重性能优化:为什么Set和

By Ne0inhk

手把手教你安装最新版 Python(2026 版)| 全系统适配 + 避坑指南

一、为什么要安装最新版 Python? Python 的版本迭代会带来性能提升、新特性支持和安全漏洞修复。比如 3.10 + 版本新增了match-case语法,3.11 版本运行速度提升约 60%,3.12 版本进一步优化了内存管理。 * 避免旧版本的兼容性问题(很多第三方库已不再支持 3.7 及以下版本); * 享受最新的语法糖和性能优化; * 获得官方的安全维护(旧版本会逐步停止更新)。 注意:Python 2.x 已完全停止维护,本文仅讲解 Python 3.x 的安装。 二、安装前准备:检查是否已有 Python 先确认你的电脑是否已安装 Python,避免版本冲突: 1. Windows:按下Win+R,输入cmd打开命令提示符,输入python --version(或python3

By Ne0inhk

构建你的Python作品集:5个绝佳项目创意

SQLAlchemy是Python中最流行的ORM(对象关系映射)框架之一,它提供了高效且灵活的数据库操作方式。本文将介绍如何使用SQLAlchemy ORM进行数据库操作。 目录 1. 安装SQLAlchemy 2. 核心概念 3. 连接数据库 4. 定义数据模型 5. 创建数据库表 6. 基本CRUD操作 7. 查询数据 8. 关系操作 9. 事务管理 10. 最佳实践 安装 bash pip install sqlalchemy 如果需要连接特定数据库,还需安装相应的驱动程序: bash # PostgreSQL pip install psycopg2-binary # MySQL pip install mysql-connector-python # SQLite (Python标准库已包含,无需额外安装) 核心概念 * Engine:数据库连接的引擎,负责与数据库通信

By Ne0inhk
Java 入门(运算符 与 逻辑控制)

Java 入门(运算符 与 逻辑控制)

目录 一、运算符 1. 算术运算符:最基础的数学计算 2. 自增 / 自减:++ 和 -- 别再搞混 3. 关系运算符:用来做判断 4. 逻辑运算符:条件组合神器 5. 位运算 & 移位:底层二进制操作 6. 三目运算符:极简版 if-else 7. 运算符优先级 二、程序逻辑控制 1. 顺序结构 2. 分支结构:做选择 ① if-else 家族:最灵活、最常用 ② switch:固定值匹配 3. 循环结构:重复执行 ① for 循环:最常用、最清晰 ② while

By Ne0inhk