docker环境和dockerfile制作

docker

一、环境和安装

1、 docker安装
  1. 使用 root 权限登录 CentOS。确保 yum 包更新到最新
sudo yum update
  1. 卸载旧版本
yum remove docker \
                   docker-client \
                   docker-client-latest \
                   docker-common \
                   docker-latest \
                   docker-latest-logrotate \
                   docker-logrotate \
                   docker-selinux \
                   docker-engine-selinux \
                   docker-engine \
                   docker-ce
  1. 安装 Docker 所需依赖
yum -y install yum-utils device-mapper-persistent-data lvm2
  1. 指定 Docker 镜像源,使用阿里云加速
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装 Docker
sudo yum -y install docker-ce
2、安装成功

1.验证 Docker 是否安装成功:查看安装的版本号

docker -v
  1. 启动 Docker
sudo systemctl start docker
  1. 设置开机启动
sudo systemctl enable docker
  1. 测试镜像
sudo docker run hello-world
3 、错误解决

错误1:更新 yum 报错

备份仓库配置文件:CentOS-Base.repo => CentOS-Base.repo.back

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back

修改仓库配置文件,使用阿里云加速

sudo tee /etc/yum.repos.d/CentOS-Base.repo <<-'EOF'
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

EOF

错误2:yum-config-manager:找不到命令

这个是因为系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils 安装就可以了。

yum -y install yum-utils

错误3:Error response from daemon: Get “[https://registry-1.docker.io/v2/”(访问失败,需配置代理/镜像加速)

通过修改 Docker 的配置文件 daemon.json来配置镜像加速器,可以加速 Docker 镜像的拉取速度,尤其是在国内环境下。操作步骤如下:

编辑 /etc/docker/daemon.json 文件:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://alzgoonw.mirror.aliyuncs.com",
    "https://docker.m.daocloud.io",
    "https://dockerhub.icu",
    "https://docker.anyhub.us.kg",
    "https://docker.1panel.live"
  ]
}

重新加载 deamon.json 配置文件

sudo systemctl daemon-reload

重启 Docker

sudo systemctl restart docker

通过 docker info 命令查看当前 Docker 配置,是否成功加载了镜像加速器:(可能只输出Registry Mirrors:,通过拉取镜像测试)

sudo docker info | grep -i 'Registry Mirrors'

测试拉取镜像

docker pull hello-world

二、docker常用命令

帮助命令
docker xxx --help
镜像命令
docker images #列出所有镜像
docker search mysql  #查找mysql镜像
docker pull mysql:5.7  #拉取mysql镜像
docker rmi -f 镜像  #删除镜像
容器命令
  • 查看容器
docker ps #列出运行的镜像
docker ps -aq #列出运行镜像id
  • 删除容器
docker rm 容器id     #删除指定的容器,不能删除正在运行的容器,如果要强制删除 加-f
docker rm -f $(docker ps -aq) #删除所有容器
docker ps -a -q|xargs docker rm #删除所有的容器
  • 启动和停止容器
docker start 容器id     #启动容器
docker restart 容器id   #重启容器
docker stop 容器id      #停止当前正在运行的容器
docker kill 容器id      #强制停止当前容器
常用其他命令

后台启动容器

docker run -d -t 容器名

查看日志

docker logs -f -t --tail number 容器id
-tf   #显示日志
--tail number #显示日志条数

查看容器中进程信息

docker top 镜像id 

查看镜像元数据

docker inspect 镜像id 

进入当前正在进行的容器

# 方式一
docker exec -it 容器id /bin/bash
# 方式二
docker attach 容器id

从容器中拷贝文件

docker cp 容器id:目标主机目录

三、容器数据卷

使用数据卷

方式一 使用-v 选项

docker run -it -v 主机目录:容器目录 容器
docker run -it -v /home/ceshi:/home/ centos /bin/bash

-d 后台运行
-e 环境配置
-v 配置挂载卷
-p 端口映射
--name 容器名字
docker run -d -p 3307:3306 -v /home/etc/conf:/etc/mysql/conf.d 
### Dockerfile 构建自定义 CentOS 镜像常见报错解决方案 #### 使用 `docker build` 命令构建镜像时指定 Dockerfile 文件路径 当使用 `docker build` 命令来构建镜像时,可以通过 `-f` 参数指定任意位置的 Dockerfile 文件。这使得可以从不同目录下的文件构建镜像而无需移动文件。 ```bash docker build -f /path/to/Dockerfile . ``` 该方法允许灵活地管理项目结构并保持工作区整洁[^1]。 #### 处理 ISO 转化为 CentOS 完整版镜像过程中的问题 对于希望基于 ISO 文件创建完整的 CentOS 系统环境的情况,在编写 Dockerfile 后执行构建命令前需确认 ISO 文件位于同一目录内: ```bash docker build -t mycentos:7.2-iso . ``` 这里假设已准备好名为 `mycentos:7.2-iso` 的标签用于新生成的镜像,并且所有必要的资源都放置在同一文件夹中以便于访问[^2]。 如果遇到特定错误消息,则应仔细阅读这些提示信息以定位具体原因;通常情况下可能是由于缺少依赖项或是指令顺序不当引起的问题。 #### 修改 YUM 源配置避免网络连接失败 有时会因为国内网络状况不佳而导致无法正常获取远程软件包更新或安装所需组件。此时可考虑修改 `/etc/yum.repos.d/CentOS-Linux-BaseOS.repo` 中默认使用的官方源地址至更稳定的第三方镜像站,例如阿里云提供的加速服务: ```ini [mirrorlist] name=CentOS-$releasever - BaseOS (Aliyun Mirror) baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/centos/RPM-KEY-CentOS-Official ``` 上述更改能够显著提高下载速度并减少因超时造成的构建中断风险[^3]。 #### 关键点总结 为了成功构建自定义 CentOS 镜像,建议遵循以下几点: - 明确指明所用 Dockerfile 的确切位置; - 确认所有必需的基础文件(如 ISO)存在于预期的工作目录中; - 对可能出现的外部资源加载缓慢情况采取预防措施,比如更换更快捷可靠的 YUM 源服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值