Docker介绍

Docker是一个轻量级虚拟机,专注于软件运行环境,提供跨平台的部署能力。通过打包、分发和部署流程,能确保不同系统间的一致性,避免环境配置差异导致的问题。镜像是安装包,容器是软件运行实例,两者协同工作,简化了开发到生产的过程。文章还介绍了Docker的安装、镜像制作、容器管理和多容器通信等关键概念。
摘要由CSDN通过智能技术生成

Docker是一个应用打包、分发、部署的工具;

        轻量的虚拟机,只虚拟软件需要的运行环境,多余的都不需要;

Docker支持的系统非常多,windows/Linux;

Docker性能好,最大化减少了没用的配置;

        一个命令就可以部署好所需要的环境;不同系统的部署方式都一样;

目录

打包、分发、部署

Docker部署优势

镜像、容器

安装

制作自己的镜像、安装包

 docker常用命令介绍

目录挂载

 多容器通信


打包、分发、部署

打包:把软件运行所需要的第三方库、依赖、软件打包到一起,变成一个安装包;

分发:把打包好的“安装包”上传到镜像仓库,其他人可以很方便的获取;

部署:拿着“安装包”就可以一个命令运行起来应用,自动模拟出一模一样的运行环境;

Docker部署优势

防止在Windows上开发、测试,到Linux服务器配置运行环境部署,可能会因为环境配置不同导致运行出现问题;

在自己操作系统开发、测试 ——> 打包为Docker镜像 ——> 各种服务器只需要一个命令就可以部署好;

确保不同的机器上跑的是一致的运行环境;

镜像、容器

镜像: 可以理解为安装包,可以方便的进行传播和安装;

容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的;

安装

官网下载安装:Download Docker Desktop | Docker

        我是mac版本,基本不需要多余的配置;

关于配置问题可看:🎉 Docker 简介和安装 - Docker 快速入门

添加镜像:

Docker 中国官方镜像https://registry.docker-cn.com
DaoCloud 镜像站http://f1361db2.m.daocloud.io
Azure 中国镜像https://dockerhub.azk8s.cn

添加至:

 

制作自己的镜像、安装包

docker参数解释网址:docker build | Docker Documentation 

构建自己的镜像,之后编写Dockerfie;(代码下载链接:https://github.com/gzyunke/test-docker)

build为镜像(安装包):(在上述代码的dockerfile目录下,也就是要cd进去)

docker build -t test:v1 .
# -t 设置镜像的名字和版本号;
# 该命令要在dockerfile目录下

运行:

docker run -p 8080:8080 --name test-hello test:v1
# -p 映射容器内端口到宿主机;
# --name 容器名字;
# -d 后台运行

 例子,参考:💽 制作自己的镜像 - Docker 快速入门

 docker常用命令介绍

docker ps # 查看当前运行中的容器

docker image # 查看镜像列表

docker rm container-id # 删除指定id的容器

docker stop/start container-id #停止/启动指定id的容器

docker rmi image-id #删除指定id的镜像

docker volume ls # 查看volumr列表

docker network ls # 查看网络列表

目录挂载

使用docker运行后,改了项目代码不会立刻生效,需要重新build和run;

容器产生的数据,容器删除后就丢失了;

bind mount:直接把宿主机目录映射到容器内,适合挂载代码、配置文件,可挂载在多个容器上; -- 绝对路径 -v 

volume: 由容器创建和管理,创建在宿主机,所以删除容器不会丢失;-- 只需要一个名字

挂载运行命令:

docker run -p 8080:8080 --name test-hello -v (绝对路径):/app -d test:v1

下图Mounts部分,显示代码目录已经被挂载在容器中: 

 多容器通信

很多项目不是独立运行的,需要数据库、缓存等依赖;

想要实现多容器互通,需要把这些容器放在同一个网络中;

创建一个名为test-net的网络:

docker network create test-net

运行 Redis 在 test-net 网络中,别名redis

docker run -d --name redis --network test-net --network-alias redis redis:latest

修改代码中访问redis的地址为网络别名

        也就是上述代码app.js中关于redis部分取消注释;

运行项目,使用同一个网络:

docker run -p 8080:8080 --name test -v (绝对路径):/app --network test-net -d test:v1

 运行后可以发现已经链接上redis

参考视频:Docker 镜像发布和部署_哔哩哔哩_bilibili

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值