1、Docker简介
-
开源的应用容器引擎
-
打包环境和应用到一个轻量级,可移植的容器中,发布到任何 Linux 机器上,规避了软件跨环境迁移的问题
-
沙箱机制,相互隔离
1.1 安装
sudo apt install docker-ce
1.2 架构
-
守护进程(daemon):后台服务,管理一个 Docker 进程
-
镜像(image):相当于一个 root 文件系统,打包了环境和应用
-
容器(container):镜像运行时的实体,可以被创建,启动,暂停, 停止,删除
-
仓库(repository):保存镜像文件
2、Docker命令
2.1 服务(守护进程)相关
- 启动
sudo systemctl start docker
- 查看
sudo systemctl status docker
- 停止
sudo systemctl stop docker
- 重启
sudo systemctl restart docker
2.2 镜像相关
- 查看
sudo docker images
- 搜索
# 查看具体版本号需要去 hub.docker.com
sudo docker search ubuntu
- 拉取
# 配置阿里云加速:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": ["加速地址"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
# 拉取镜像
sudo docker pull ubuntu[:版本]
- 删除
sudo docker rmi ubuntu[:版本]
2.3 容器相关
- 查看
# 要查看所有包括已停止运行的容器:加上参数 -a
sudo docker ps
- 创建
# 通过指定镜像版本(不指定默认 latest )创建容器
# -i:在容器上打开一个标准输入接口, -t:创建一个伪终端,一般与 -i 连用来通过伪终端操作容器, 自定义启动命令:如 bash,这会覆盖镜像定义的默认启动命令
sudo docker run -it --name u1 ubuntu[:版本] [自定义启动命令]
# -d:后台创建并启动容器,不会立即进入
# 如果没有一个前台运行的进程,容器是不会保持后台运行的,所以不要随便自定义启动命令
sudo docker run -d --name u1 ubuntu[:版本] [自定义启动命令]
- 进入
# 只能进入正在运行的容器
sudo docker exec -it u1 bash
- 启动
sudo docker start u1
# 重启
sudo docker restart u1
- 停止
sudo docker stop u1
- 删除
# 不能删除正在运行的容器
sudo docker rm u1
- 查看信息
# 查看容器定义信息
sudo docker inspect u1
# 查看容器运行日志
sudo docker logs u1
3、Docker数据卷
3.1 简介
- 宿主机中的一个目录(或