1. Centos 安装

1.1 安装 docker

Centos8 默认装的是podman
已安装则需要先卸载:yum remove docker

  1. 下载docker-ce源
    curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
  2. 安装docker-ce
    yum install docker-ce -y

问题:docker ps 报错:Cannot connect to the Docker daemon at unix…
原因:docker安装后未启动
方案:systemctl start docker.service

1.2 安装 docker-compose

官网参考链接

DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
# 下载
curl -SL https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
# 添加可执行权限
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
# 添加链接
ln -s $DOCKER_CONFIG/cli-plugins/docker-compose /usr/bin/docker-compose
docker-compose version

2. 镜像制作

在有Dockfile的目录下执行:
docker build -t imageName:v1 .
查看镜像
docker images
打包为文件
docker save -o fileName.tar imageName:v1
在另一个环境加载
docker load < fileName.tar

3. 运行及查看

使用docker-compose运行
编写 docker-compose.yml配置文件
docker-compose up -d
查看当前运行的容器:
docker ps
查看日志
docker logs -f xxxx--tial 200
进入容器环境
docker exec -it xxxx /bin/bash

4. 文件拷贝

  1. 本机文件到容器
    docker cp ./file xxxx:/path/to/
  2. 从容器拷贝到本地
    docker cp xxxx:/path/to/file ./

5. 空间清理

查看Docker的磁盘使用情况:docker system df
批量查看volume大小: Volume: dfzn-system_mysql /var/lib/docker/volumes/dfzn-system_mysql/_data 5.3G /var/lib/docker/volumes/dfzn-system_mysql/_data

本地查看文件大小:du -d1 -h /var/lib/docker/containers | sort -h
删除无用镜像:docker image rm xxxx
清理docker磁盘 docker system prune:删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)

查找超过100M的文件:find / -xdev -size +100M -exec ls -l {} \;
删除nginx日志文件,空间未释放,需要重启一下nginx。

6. 实践总结

  1. 可通过 .env 设置环境变量, 不用 env_file 指定,可替代 environment 中的默认值。
  2. 测试通过 env_file: filename.env, 定义的环境变量,会被environment的同名变量的默认值替代。(why)
  3. 删除容器或镜像默认不会删除数据。
  4. 通过多阶段构建减少最终镜像的大小,只包含运行时所需的文件,而不包括编译工具等开发依赖。
  5. 通过.dockerignore 忽略文件或目录,避免将敏感信息或无关文件打包进镜像。
  6. 定期清理未使用的镜像和容器: docker system prune -af --volumes
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐