Docker从入门到部署项目( 二 )


  • Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号] 。默认地址是 Docker Hub(docker.io) 。
  • 仓库名:这里的仓库名是两段式名称,即 <用户名>/<软件名> 。对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像 。
比如拉取一个node镜像:
docker pull node:18-alpine
Docker从入门到部署项目

文章插图
图片
这里我们拉取镜像的时候只是给出了镜像名称(仓库名+标签)也就是node:18-alpine,并没有给出Docker镜像的仓库地址,所以它会从默认地址docker.io拉取镜像
从上图我们可以看到docker pull 命令的输出结果给出了镜像的完整名称,即:docker.io/library/node:18-alpine 。
查看镜像如果想要查看本地已经下载的镜像,可以使用docker image ls命令
Docker从入门到部署项目

文章插图
图片
列表包含了 仓库名、标签、镜像 ID、创建时间 以及 所占用的空间 。
当然也可以在docker桌面端中直接查看:
Docker从入门到部署项目

文章插图
图片
删除镜像如果想要删除本地镜像,可以使用docker image rm命令
格式为:
docker image rm [选项] <镜像1> [<镜像2>...]其中,<镜像> 可以是 镜像短 ID、镜像长 ID、镜像名 或者 镜像摘要 。
比如删除我们刚拉取的node镜像
docker image rm node:18-alpine如果想批量删除镜像可以使用docker image ls -q来配合使用docker image rm
比如,我们需要删除所有仓库名为 redis 的镜像:
docker image rm $(docker image ls -q redis)或者删除所有在 mongo:3.2 之前的镜像:
docker image rm $(docker image ls -q -f before=mongo:3.2)更多指令可通过docker image --help查看
操作容器查看容器查看正在运行的容器:
docker ps查看所有容器
docker ps -a启动容器启动容器一般有两种情况:
  • 基于镜像新建一个容器并启动
  • 将已有的终止状态(exited)的容器重新启动
新建并启动使用的命令是docker run
docker run -it node参数说明:
  • -i:交互式操作
  • -t:终端
  • node:node镜像
启动终止状态的容器首先查看所有的容器
docker ps -a
Docker从入门到部署项目

文章插图
然后可以使用docker start启动一个停止的容器
docker start 7e7ff4af478f重启容器docker restart a03b0445b82d后台运行大部分情况下,我们都希望docker是在后台运行的,这里可以通过-d指定容器的运行模式
docker run -d node:latest停止容器停止容器命令如下
docker stop <容器 id>先查看所有容器
Docker从入门到部署项目

文章插图
图片
再停止容器
docker stop 3c275da2f36d
Docker从入门到部署项目

文章插图
图片
进入容器当我们使用-d参数时,容器启动会进入后台,此时想要进入容器可以通过以下指令:
「exec」(推荐使用)
docker exec -it a03b0445b82d /bin/bash
Docker从入门到部署项目

文章插图
图片
「注意:」 如果从这个容器退出,容器不会停止,这就是为什么推荐大家使用 「docker exec」 的原因 。
「attach」(不推荐使用)
docker attach a03b0445b82d「注意:」 如果从这个容器退出,会导致容器的停止 。
删除容器删除容器可以使用docker rm命令
docker rm a03b0445b82d如果想要删除所有终止状态的容器可以使用以下指令:
docker container prune小试牛刀(部署一个前端项目)首先准备一个vue项目,在项目根路径下添加Dockerfile文件
编写Dockerfile# 指定node镜像FROM node:16-alpine as builder# 指定工作目录WORKDIR /code# 代码复制到容器中ADD . /code# 安装依赖RUN npm install --registry=https://registry.npm.taobao.org# 打包RUN npm run build# RUN ls# 指定nginx镜像FROM nginx:latest# 复制打包后的代码到nginx容器中COPY --from=builder /code/dist /usr/share/nginx/html# 暴露端口EXPOSE 80


推荐阅读