Skip to content

ThomasLiu/docker-learn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-learn

docker learn code

安装docker

常用命令, Docker 命令大全

docker pull NAME # 获取一个在在 docker hub 上的镜像
docker images # 查看镜像
docker image prune # 删除 <none> 的镜像
docker inspect NAME|ID # 获取容器/镜像的元数据

docker build -t image_test . # 使用当前目录的 docker 文件构建 TAG 为 image_test 的镜像

docker run --name test -p 8080:80 -d image_test # 基于 image_test 镜像 生成一个容器名字为 test,把里面的80端口映射到 8080,加了 -d 参数默认不会进入容器

docker run -it -d mysql:5.7 /bin/bash # 生成容器 基于 mysql:5.7 镜像,在控制台上操作

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

docker start NAME|ID # 通过 docker ps -a 查到的容器,根据里面的 NAME|ID 启动 对应的容器
docker restart NAME|ID # 重启在运行的容器

docker attach --sig-proxy=false NAME|ID # 链接到正在运行的容器,监控其日志, --sig-proxy=false 参数让 退出容器终端时,不会导致容器的停止,attach 默认退出退出容器终端时容器也会停止
docker logs -f NAME|ID # 查看该容器的终端输出历史,-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出

docker container prune # 清理掉所有处于终止状态的容器

Docker 实践尝试

参考资料

团队化 Docker 开发

参考资料

Docker 构建优化

分析构建过程

查看 commit msg 可以了解整个镜像体积优化过程

参考资料

分析构建过程

计算 dockerfile 每一条 instruction 的耗时

# 1. 开启这个实验性 flag
export DOCKER_BUILDKIT=1

# 2. 添加参数 --progress plain 获得更加直观的输出结果
docker build -t YOUR_IMAGE_NAME:YOUR_TAG -f YOUR_DOCKERFILE --progress plain .

找出是哪些部分最占空间

# 忽略一些 du 的错误
docker run -it YOUR_IMAGE_NAME:YOUR_TAG du -sh /* 2>&1 | grep -v "cannot access"

# 查看某个具体文件夹
docker run -it YOUR_IMAGE_NAME:YOUR_TAG du -sh /usr/* | grep -v "cannot access"

参考资料

生产环境高效构建

About

docker learn code

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published