Skip to content

docker

字数: 0 字 时长: 0 分钟

检测

  • 检测是否安装成功
sh
docker -v
  • 尝试运行一个Nginx服务器 当本地没找到nginx镜像时,它会去远程仓库中拉取,服务运行后,就可以通过localhost来访问了
sh
docker run -d -p 80:80 --name webserver nginx
  • 信息
sh
docker info

镜像加速源

镜像加速器镜像加速器地址
Docker 中国官方镜像https://registry.docker-cn.com
DaoCloud 镜像站http://f1361db2.m.daocloud.io
Azure 中国镜像https://dockerhub.azk8s.cn
科大镜像站https://docker.mirrors.ustc.edu.cn
阿里云https://ud6340vz.mirror.aliyuncs.com
七牛云https://reg-mirror.qiniu.com
网易云https://hub-mirror.c.163.com
腾讯云https://mirror.ccs.tencentyun.com
"registry-mirrors": ["https://registry.docker-cn.com"]

alt text

docker+nginx 安装部署修改资源目录配置文件和容器端口信息

容器(container)

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

简单理解就是容器是镜像的一个运行实例。当我们运行一个镜像,就创建了一个容器。

查看正在运行的容器

sh
docker ps

查看所有容器

sh
docker ps -a

启动容器

启动容器一般有两种情况:

  • 基于镜像新建一个容器并启动
  • 将已有的终止状态(exited)的容器重新启动

新建并启动

sh
docker run

sh
docker run -it node

参数说明:

  • -i:交互式操作
  • -t:终端
  • node:node镜像

启动终止状态的容器

  • 查看所有的容器
sh
docker ps -a
  • 然后可以使用docker start启动一个停止的容器
sh
docker start 7e7ff4af478f

重启容器

sh
docker restart a03b0445b82d

后台运行

大部分情况下,我们都希望docker是在后台运行的,这里可以通过-d指定容器的运行模式

sh
docker run -d node:latest

停止容器

sh
docker stop <容器 id>

docker stop 3c275da2f36d

进入容器

当我们使用-d参数时,容器启动会进入后台,此时想要进入容器可以通过以下指令:

  • exec(推荐使用)
sh
docker exec -it a03b0445b82d /bin/bash

注意: 如果从这个容器退出,容器不会停止,这就是为什么推荐使用 docker exec 的原因。

  • attach(不推荐使用)
sh
docker attach a03b0445b82d

注意: 如果从这个容器退出,会导致容器的停止。

删除容器

删除容器可以使用docker rm命令

sh
docker rm a03b0445b82d

如果想要删除所有终止状态的容器

sh
docker container prune

镜像(image)

Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。

sh
docker image --help

拉取镜像

Docker Hub 上有大量的高质量的镜像可以用,我们可以使用docker pull从镜像仓库中拉取对应的镜像。

格式为:

shell
docker pull 仓库名

docker pull nginx

查看本地已经下载的镜像

sh
docker image ls

列表包含了 仓库名标签镜像 ID创建时间 以及 所占用的空间

删除本地镜像

sh
docker image rm 仓库名

docker image rm nginx

部署一个前端项目

准备一个vue项目,在项目根路径下添加Dockerfile文件

编写Dockerfile

Dockerfile
# 指定node镜像
FROM node:18 as builder

# 指定工作目录
WORKDIR /code

# 代码复制到容器中
ADD . /code

# 安装依赖
RUN npm i

# 打包
RUN npm run build

# RUN ls

# 指定nginx镜像
FROM nginx:latest

# 复制打包后的代码到nginx容器中
COPY --from=builder /code/dist /usr/share/nginx/html

# 暴露端口
EXPOSE 80

打包镜像

sh
 docker build -t vue-test .

启动容器

sh
docker run -itd -p 0.0.0.0:9090:80 vue-test

这里的-p表示将容器的端口映射到宿主机的端口,这里的宿主机也就是我们本地了

前面的0.0.0.0:9090表示宿主机端口

后面的80表示容器的端口

启动完我们直接使用http://localhost:9090/进行访问