🚀 Docker
参考
引子
Virtual Machines
- 更强的隔离性:在硬件层面上实现虚拟化
- 文件特性:硬盘文件、快照都是文件,可以持久化
Docker
- 轻量化:在操作系统层面上实现虚拟化
- 分布式:可以在同一台机器上运行多个容器,每个容器之间相互隔离
- 无状态:容器每次创建都是全新的,容器内的进程也是全新的,容器内的内容不可持久化
Install Docker
-
使用 apt 安装 docker engine
-
安装并配置 NVIDIA CTK
-
验证
Bash 1sudo docker run --rm --gpus all nvidia/cuda:12.3.0-base-ubuntu22.04 nvidia-smi
镜像 IMAGE
是一个只读模板,用来创建容器,类似于:
- 面向对象中的类,容器是对象
- 虚拟机中的
.iso,容器是虚拟机
下载镜像
| Bash | |
|---|---|
1 | |
IMAGE_NAME镜像名称TAG可选,镜像版本或标签,默认为latest
代理加速(参考文档):
-
sudo mkdir -p /etc/systemd/system/docker.service.d -
sudo vim /etc/systemd/system/docker.service.d/http-proxy.confBash 1 2 3
[Service] Environment="HTTP_PROXY=http://127.0.0.1:7897" Environment="HTTPS_PROXY=http://127.0.0.1:7897" -
sudo systemctl daemon-reload && sudo systemctl restart docker -
sudo systemctl show --property=Environment docker
查看镜像
| Bash | |
|---|---|
1 | |
REPOSITORY镜像名称TAG镜像版本或标签IMAGE ID镜像 ID:唯一标识CREATED创建时间SIZE镜像大小
删除镜像
| Bash | |
|---|---|
1 | |
导出镜像
| Bash | |
|---|---|
1 | |
导入镜像
| Bash | |
|---|---|
1 | |
容器 CONTAINER
查看容器
| Bash | |
|---|---|
1 | |
增删容器
删除容器
- 删除容器前需要先停止容器
| Bash | |
|---|---|
1 | |
- 删除所有已停止容器
| Bash | |
|---|---|
1 | |
创建容器
| Bash | |
|---|---|
1 | |
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
进出容器
进入容器
| Bash | |
|---|---|
1 | |
执行命令
| Bash | |
|---|---|
1 | |
退出容器
| Bash | |
|---|---|
1 | |
启停容器
重启容器
| Bash | |
|---|---|
1 | |
启动容器
| Bash | |
|---|---|
1 | |
停止容器
| Bash | |
|---|---|
1 | |
自建镜像
0 准备
| Text Only | |
|---|---|
1 2 3 4 5 6 | |
code
| Bash | |
|---|---|
1 | |
| Go | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | |
| HTML | |
|---|---|
1 | |
1 编写 Dockerfile
| Docker | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
2 构建镜像
| Bash | |
|---|---|
1 | |
-t指定名称.在当前目录构建
3 推送到 dockerhub
| Bash | |
|---|---|
1 2 | |
docker compose
常用命令
-
启动容器组
Bash 1sudo docker compose up -d-d后台运行
-
停止容器组
Bash 1sudo docker compose down -
查看容器组
Bash 1sudo docker compose ps -
查看日志
Bash 1sudo docker compose logs -f-f实时查看