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"]
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/
进行访问