原因
作为一枚前端程序猿,之前很少使用docker,对其使用场景和原理知之甚少。这两天碰到部署一个公司node项目,算是 入了个门,过程也是遇到不少坑。这里总结给大家,帮助快速实战吧。
简单理解
容器:相当于一个微型的操作系统,里面可以部署各种应用 镜像:相当于系统的应用,也可以是自己的生成镜像(自己的项目)
安装
直接去官网下载吧:www.docker.com/get-started ps:因为我的电脑是window10系统,在安装过程遇到需要升级wsl2,下个升级包 wslstorestorage.blob.core.windows.net/wslblob/wsl… 当然其他系统自行百度找这个升级包就好了
常见命令
装完之后就可以在命令行中进行操作,也可以界面可视化操作。这里主要列出我这几天用到吧。
docker ps查看当前系统里正在运行容器docker ps -a查看所有容器,包含其他状态下容器docker start xxx这里xxx是容器id 重新运行已经停止的容器docker stop xxx暂停当前运行的容器docker rm xxx删除已经暂停的容器 前提是已经stop过的容器docker run [OPTIONS] IMAGE [COMMAND] [ARG...]OPTIONS我常用有--name xxx给启动容器一个名称-p xxx:yyy主机(宿主)端口:容器端口-it在当前容器内开启一个交互模式命令窗口
IMAGE这是可以是镜像id或者镜像名称
然后就是和镜像相关命令
docker images查看镜像列表docker pull xxx这里xxx是镜像远程,它会从官方镜像库拉取,对于一些私有仓库镜像需要登录docker login url登录到私有镜像仓库地址docker build -t repository:tag -f Dockerfile .这里将当前目录下所有内容根据dockerfile配置文件,打包成一个执行名称的镜像docker tag imageId 私域地址/项目/repository:tag先将本机镜像给远程镜像打个tagdocker push 私域地址/项目/repository:tag这里将本地镜像推到远程镜像仓库,取决于登录镜像仓库docker export containerId -o xxxx.tar这里需要注意是将一个容器导出成一个镜像docker import xxx.tar repository:tag这里指定导入镜像名称和版本号docker logout退出登录
docker-componse.yml
我们可以通过配置这个文件,集中管理docker服务
docker up启动docker-componse配置所有服务docker down停止并删除所有服务docker-compose -f ./docker-compose.yml up -d --force-recreate --no-deps xxx启动其中一个服务 xxx 是你在配置文件中定义的服务名docker-componse.ym具体的配置项
version: "3"
services:
mx-web-node: // 服务名称
container_name: servicename // 容器名称
depends_on:
#- platform
- mx-service
- mx-edms
env_file: env.conf
image: imagename:imagetag // 配置容器启动依赖镜像 也可以通过 `build`属性来配置镜像
#networks:
#- mis
ports:
- 6001:6001 // 主机端口:容器端口
restart: always
command: ["/usr/local/bin/node", "/app/server.js"] // 可以覆盖dockerfile中cmd启动命令
volumes: // 将容器内文件目录映射到主机里文件目录,方便实时更新内容
- /home/ucmed/logs/mx-web-node:/app/logs
当然一个配置文件,可以配置多个服务
总结
上面大概就是目前我在项目中用到命令,还有许多命令可以指定各种参数实现不同效果,可以实际使用中,自行查询文档了。