Docker 是一个开源的应用容器引擎,基于Go语言,能够将应用程序与基础设施分离,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows 操作系统的机器上,也可以实现虚拟化、容器完全使用沙箱机制,彼此之间没有任何接口。
文章目录
- 1. Docker介绍
- 2. Docker环境安装
- Windows
- Ubuntu
- 3. Docker常用命令
- 4. 常见问题
1. Docker介绍
一个完整的Docker有以下几个部分组成:
- DockerClient客户端
- Docker守护进程
- Docker镜像
- Docker容器
Docker 的三个核心特性:
- 镜像(Image):Docker 镜像是创建容器的基础,类似于虚拟机的快照。
- 容器(Container):从镜像创建的正在运行的实例,可以启动、停止和删除。每个创建的容器都是隔离的,互相看不到,以确保平台的安全性。
- 仓库(Registry):Docker仓库是具有相同名称但具有不同标签的 Docker 镜像的集合。
2. Docker环境安装
Windows
首先打开Hyper-V虚拟化环境,并用systeminfo
查看。
然后打开地址下载:https://www.docker.com/products/docker-desktop/
若出现错误hardware assisted virtualization and data execution protection must be enable,执行:bcdedit /set hypervisorlaunchtype Auto
若出现错误Update the WSL kernel by running “wsl --update” or follow instructions ,参考:https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
首先安装WSL2 Linux kernel update package for x64 machines
,
然后配置wsl版本并重启:
wsl --set-default-version 2
测试demo:docker run hello-world
Ubuntu
可以使用国内daocloud
的一键安装命令:curl -sSL https://get.daocloud.io/docker | sh
3. Docker常用命令
下面是Docker的常用命令:
Docker常用命令大全
docker images # 查看所有镜像
docker ps -a # 查看所有容器
# nvidia-docker镜像:https://hub.docker.com/r/nvidia/cuda
# docker pull nvidia/cuda:11.2.0-cudnn8-devel-ubuntu18.04
image=nvidia/cuda:11.2.0-cudnn8-devel-ubuntu18.04 # nvidia-docker基础镜像
image=docker.dm-ai.cn/algorithm-research/py38-cuda11.2-cudnn8.1-ubuntu18.04:base
image=docker.dm-ai.cn/algorithm-research/py38-cuda11.2-cudnn8.1-ubuntu18.04:torch1.8.1
image=docker.dm-ai.cn/algorithm-research/py38-cuda11.2-cudnn8.1-ubuntu18.04:torch1.8.1-trt8.2
image=docker.dm-ai.cn/algorithm-research/py38-cuda11.2-cudnn8.1-ubuntu18.04:torch1.8.1-trt8.4
docker run -it --gpus all -p 40000:80 -v `pwd`:/app $image /bin/bash
# 将容器转为镜像
docker commit -m "info" -a "test" container_id image_id:tag
docker push image_id:tag
容器生命周期管理命令
run
start/stop/restart
kill
rm
create
exec
pause/unpause
容器操作命令
ps
inspect
top
events
logs
export
port
容器rootfs命令
commit
cp
diff
镜像仓库命令
login/logout
pull
push
search
本地镜像管理命令
images
rmi
tag
build
history
save
load
import
基础版本信息命令
info
version
4. 常见问题
Docker 网络模式有哪些?
host:使用 host 网络模式,容器的网络栈与 Docker 主机共享网络命名空间,容器不会被分配自己的 IP 地址。
bridge:它使用软件桥接,允许连接到同一桥接网络的容器进行通信,同时提供与未连接到该桥接网络的容器的隔离。
container:这种模式指定新创建的容器与现有容器共享网络命名空间,而不是与主机共享。
none:使用 none 模式,Docker 容器拥有自己的网络命名空间,但不为 Docker 容器进行任何网络配置。也就是说,该 Docker 容器没有网络接口卡、IP、路由和其他信息。在这种网络模式下,容器只有 lo 回环网络,没有其他网络接口卡。无法连接到此类型的网络,但封闭的网络可以确保容器的安全性。
以上。