Docker部署基础快速入门

什么是docker

当你部署一个项目在一个服务器时是否有过因项目依赖缺失,版本不对而苦苦调试,浪费了很多时间在项目部署上,而docker正是为我们解决这一烦恼的工具,它将一个应用程序所依赖的环境打包在一个容器中,每个容器都是一个独立的容器,无需因为外部环境的改变而改变,大大降低了开发者部署的效率。

ps:安装可以看下面的文章;

Docker 安装 (完整详细版)_docker安装-CSDN博客

基础命令

运行命令拆解:
docker run -d --name myDocker -p 3306:3306 mysql

//-d是让容器在后台运行

//--name是指定创建的容器的名称

//-p 是设置端口映射,外部访问端口/内部真实端口

//最后的参数是指定运行的镜像的名字
docker常见命令:
//启动停止docker服务

start docker
version
stop docker

restart docker

//查看版本

docker --version

//搜索镜像

docker search 镜像名

//拉取镜像

docker pull <image_name>:<tag>

//列出本地镜像

docker images

//删除镜像
docker rmi <image_name_or_id>

//列出运行中的容器
docker ps
docker ps -a(列出所有的运行的和不运行的docker容器)

//停止启动容器
docker stop <container_id_or_name>
docker start <container_id_or_name>

//删除容器
docker stop <container_id_or_name>

//查看容器日志
docker logs <container_id_or_name>

//进入正在运行的容器
docker exec -it <container_id_or_name> /bin/bash

数据卷:

数据卷是 Docker 实现数据持久化和共享的重要技术。数据卷位于 Docker 容器的文件系统之外,存储在宿主机(服务器)的文件系统中。Docker 通过将数据卷挂载到容器内的指定目录,实现数据的持久化和共享。一个数据卷可以被多个 Docker 容器同时挂载和访问,保证了数据的一致性和共享性。

数据卷管理命令:
//挂载数据卷
docker run -d --name my_nginx -v /root/data/html:/usr/share/nginx/html -p 80:80 nginx
//列出数据卷
docker volume ls
//查看数据卷详情
docker volume inspect <volume_name>
//删除数据卷
docker volume rm <volume_name>




构建镜像

基本框架(这里引用了黑马Docker快速入门视频的资料)

 

dockerfile文件示例(构建基于jdk22的springBoot项目)
# 使用 JDK 22 基础镜像
FROM openjdk:22-jdk

# 维护者信息
LABEL maintainer="youremail@example.com"

# 创建应用目录
RUN mkdir -p /app

# 设置工作目录
WORKDIR /app

# 复制项目的 pom.xml 和其他依赖文件到工作目录
COPY pom.xml /app

# 下载项目的依赖包(利用 Docker 的缓存功能,加速后续构建)
RUN ./mvnw dependency:go-offline -B

# 复制项目的源代码到工作目录
COPY src /app/src

# 构建 Spring Boot 应用
RUN ./mvnw package -DskipTests

# 暴露端口
EXPOSE 8080

# 运行 Spring Boot 应用
CMD ["java", "-jar", "target/your-springboot-app.jar"]
docker build -t myapp:v1 /path/to/your/Dockerfile//构建镜像命令

docker网络管理(实现容器之间的通信)

docker容器通信

默认情况下,Docker 使用桥接网络模式。当你在宿主机上运行多个容器时,它们会连接到一个虚拟的桥接网络(bridge 网络)。容器之间可以通过以下方式进行通信:

  • 通过容器名称: 默认的桥接网络模式支持容器名称解析。容器可以通过其他容器的名称访问它们。例如,如果有两个容器 webdbweb 容器可以通过 db 的名称访问 db 容器。
  • 通过 IP 地址: 容器在桥接网络中会被分配一个 IP 地址,容器可以通过 IP 地址进行通信。可以使用 docker inspect <container_name> 命令查找容器的 IP 地址。
 docker网络管理命令
//列出docker网络
docker network ls
//创建docker网络
docker network create <network_name>
//连接docker网络
docker network connect <network_name> <container_id_or_name>
//断开docker网络
docker network disconnect <network_name> <container_id_or_name>

Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。它允许你使用一个名为 docker-compose.yml 的配置文件来定义应用的服务、网络和数据卷,然后通过简单的命令启动所有这些服务。这使得管理和配置多容器应用变得更加方便和高效。 

示例:

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html

  db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: mydb
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:
 Dockercompose常用命令
//启动服务
docker-compose up

//启动服务,后台运行
docker-compose up -d

//停止服务
docker-compose down

//查看状态
docker-compose ps

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值