docker 学习笔记
Docker
1. 初识 Docker
快速构建、运行、管理应用的工具
1.1 安装
删除已有的 docker 版本
1 | sudo yum remove docker \ |
安装所需的软件包
首先安装 yum 工具
1 | yun install -y yum-utils |
安装成功后,配置 yum 源(阿里)
1 | yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
清华源
1 | https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
安装 Docker
1 | yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin |
校验安装
1 | docker -v |
1 | docker images |
images 会出现错误,代表 docker 还没有启动
启动和校验
1 | # 启动 docker |
配置镜像加速器
阿里云为例:镜像容器服务 -> 镜像工具 -> 镜像加速器
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器1
2
3
4
5
6
7
8sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://****.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2. Docker 使用
2.1 部署 MYSQL
1 | docker run -d --name mysql -p 3307:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 mysql |
问题
1 | # docker 暂停 |
1 | # 进入容器 |
2.2 镜像和容器
当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image)。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker会 在运行镜像时创建一个隔 离环境,称为容器(container) 。
2.3 常用命令
run 命令
1 | docker run -d \ |
- run:创建并运行
- —name:容器名称
- -p:端口映射,docker端口:容器端口
- -e:envouriment,环境变量,具体看文档
镜像名称结构
- Repository:TAG,例 mysql:5.7
注意
rmi:删除镜像
rm:删除容器
exec:进入容器内部操作
1
docker exec -it <容器名> bash
2.4 数据卷
命令 | 说明 |
---|---|
docker volume create | 创建数据卷 |
docker volume ls | 查看所有数据卷 |
docker volume rm | 删除指定数据卷 |
docker volume inspect <卷名> | 查看某个数据卷详情 |
docker volume prune | 清除数据卷 |
1 | # 可以使用 help 命令查看参数详情 |
注意
必须在 docker run -v 数据卷名(这里可用绝对路径):容器内目录 时才能挂载映射,已经创建好的容器不可挂载
当创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建
1
doucker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html(需求目录) nginx
2.5 自定义镜像
2.5.1 镜像结构
2.5.2 Dockerfile
1 | # 基础镜像 |
1 | # 构建 docker |
- -t:镜像起名,格式(镜像名:版本号,默认latest)
- 。:是指Dockerfile所在目录,如果就在当前目录就是 . 。
2.6 网络
加入自定义网络的容器才可以通过容器名互相访问
命令 | 说明 |
---|---|
docker network create | 创建网络 |
docker network ls | 查看所有网络 |
docker network rm | 删除指定网络 |
docker network prune | 清除未使用网络 |
docker network connect | 使指定容器加入某网络 |
docker network disconnect | 脱离某网络 |
docker network inspect | 查看网络信息 |
1 | # 创建 |