🐳🦈docker 笔记📒

141 阅读3分钟
  • 问题:docker 主要是解决程序运行环境的问题。
  • docker 的架构:客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
  • docker 运行运行环境通过 docker 的镜像来创建

核心概念

  • 镜像(Image)相当于一个小的系统。
  • 容器(Container) 容器是镜像的实体,我们通实体容器来控制 Image 镜像小系统。
  • 仓库(Repository)系统中心

拉取镜像

# 在拉取之前搜索 ubuntu 镜像
docker pull ubuntu

# 拉取 ubuntu 镜像
docker pull ubuntu

# 拉取最新的 ubuntu 镜像
docker pull ubuntu:latest

使用镜像运行容器

运行 ubuntu:latest 容器, 然后

// 使用 ubuntu:latest 的 bin 目录下面的命令 echo
docker run ubuntu:latest /bin/echo "我是 => ubuntu:last, 你好!"

// 进入 ubuntu:latest 的交互模式, 然后使用 bash
docker run ubuntu:latest -t -l ubuntu:latest /bin/bash

// -t 配一个伪终端
// -l 指定为交互模式
// -d 指定在后台运行
// ubuntu:latest /bin/bash 指定容器和命令行使用 bash

// 使用交互模式
ll // 获取目录列表
cd bin && ll // 切换到 bin 目录和获取 bin 下面的所有图片

// 退出docker的交互式终端
exit

如果 docker run 的参数不确定,可以使用 docker run --help 帮助信息。

查看容器、查看镜像、删除容器、删除镜像,以及 docker 信息

# 查看运容器
docker ps # 查看正在运行的容器
docker ps -a # 查看所有运行过的容器

# 查看镜像
docker images # 查看所有的存在的镜像

## 删除容器
docker rm -f [CONTAINER ID] # 删除指定容器ID的
docker container prune 删除所有的容器

# 删除镜像
 docker rmi [name]

# docker 整体信息
docker info

开启或者停止一个容器,从后台进入

# 先查看有哪些容器是运行过的
docker ps -a # 查看所有运行过的容器

# 获取目标 CONTAINER ID
docker start [CONTAINER ID]

# 停止一个容器
docker stop [CONTAINER ID]

# 从后台进入
docker attach 1e560fca3906 
docker exec -it 243c32535da7 /bin/bash

操作快照

# 输出快照
docker export 1e560fca3906 > ubuntu.tar
# 从快照中导入
cat docker/ubuntu.tar | docker import - test/ubuntu:v1

web 服务

# 拉取镜像文件
docker pull nestjs/webapp
# 创建一个容器,并运行 app.ts 文件
docker run -d -P nestjs/webapp ts-node app.ts
# 指定端口, 后面的端口是 docker 服务暴露出来的,5000 是我们访问 docker 服务时对应的端口
docker run -d -p 5000:5000 nestjs/webapp ts-node app.ts

# 查看端口 
docker port CONTAINER ID # 根据 [CONTAINER ID]
docker port wizardly_chandrasekhar # 更具 name

## 查看日志
docker logs -f CONTAINER ID # 根据 [CONTAINER ID]

## 查看容器进程
docker top name # 根据容器名

## 检查应用程序
docker inspect # 根据容器名

自定义镜像

  • docker build 命令我们可以在 Dockerfile 的文件的配合下,创建自定义一个镜像。

Dockerfile 是由 docker 命令和命令参数组成,但是每一条命令都会多创建一层镜像,所以我们需要将能够合并的命令合并。

Dockerfile 命令

  • FROM [base_image] 指定基镜像
  • RUN [command] 指定要运行的命令

构建命令

docker build -t nginx:test .

数据库 redis

从 docker 启动 redis 的内容。

# 搜索 redis
docker search redis

# 拉取镜像
docker pull redis:latest

# 查看本地镜像
docker images

# 运行容器 redis
docker run -itd --name redis-test -p 6379:6379 redis # 6379

# 查看正在运行容器
docker ps

# 打开redis交互
docker exec -it redis-test /bin/bash