镜像加速 依照文档配置:
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://slycxkzw.mirror.aliyuncs.com"]
}
重新加载
yum install -y yum-utils
# 设置新的yum源 (如果也不可用 到网上重新找吧)
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 生成缓存 ,如果下载不下来repo包,请根据路径自行下载,然后传到系统源码文件夹下。
yum makecache
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6 指定安装版本
停止并删除所有正在运行的容器:
bash复制代码
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
删除所有未使用的镜像(或者您可以指定特定的镜像进行删除):
bash复制代码
docker rmi $(docker images -q) # 这会删除所有镜像,请谨慎使用
# 或者只删除特定的镜像,例如 mysql:latest
docker rmi mysql:latest
删除所有网络(请谨慎使用,因为某些网络可能是由其他服务或容器创建的):
bash复制代码
docker network prune
删除所有未使用的卷(请确保没有重要数据在卷中):
bash复制代码
docker volume prune
将证书移动到 CA 信任存储
复制证书到 CA 信任目录:
将你的 Harbor 证书从 /root 目录复制到 CA 信任目录:
cp /root/harbor.crt /etc/pki/ca-trust/source/anchors/
更新 CA 信任存储:
更新 CA 信任存储,使系统信任新的证书:
update-ca-trust
步骤2:配置 Docker 以信任自签名证书
创建 Docker 证书目录:
根据你的 Harbor 地址和端口创建相应的 Docker 证书目录。如果你的 Harbor 地址是 harbor,端口是 443:
mkdir -p /etc/docker/certs.d/harbor:443
将证书复制到 Docker 证书目录:
将 Harbor 证书复制到 Docker 证书目录:
cp /root/harbor.crt /etc/docker/certs.d/harbor:443/ca.crt
重启 Docker 服务:
重启 Docker 服务以使更改生效:
systemctl restart docker
步骤3:尝试 Docker 登录
现在,尝试使用 Docker 登录到 Harbor:
docker login harbor:443
docker pull nginx:latest 在官方拉取nginx镜像
一般docker容器里面不会自带vim和vi,也就是没有修改的命令,目前执行apt-get update命令也更新不了,也就执行不了apt-get install
网上的方案是修改镜像源,如下:
1、原文件备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2、编辑源列表文件
sudo vim /etc/apt/sources.list
问题是没有docker容器不带vim命令,打命令行创建文件的方式不大好整,于是想到的解决方案是 先修改好sources.list,然后再复制到容器里面
操作如下:
随便找个地方创建个文件名: sources.list
然后修改文件,也可以搜索其他的apt源都行
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
在这个文件的地方打开命令行,如有git,右键git bash here
docker cp sources.list {容器名}:/etc/apt/sources.list
容器名可以通过执行 docker ps查询
进入容器里面再更新源
docker exec -it 容器名 /bin/bash
执行 apt-get update 后执行apt-get install vim
在容器中执行命令
yum update 命令时,系统提示另一个 yum 进程已经在运行并持有锁文件。这通常发生在之前的 yum 命令没有正确结束,可能是因为它被挂起或因为某些原因变得无响应。
要解决这个问题,你可以尝试以下步骤:
找出并杀死 yum 进程:
首先,你需要找出正在运行的 yum 进程。你可以通过 ps 命令来查找 yum 进程:
ps aux | grep yum
这将列出所有包含 yum 的进程。你应该能够看到与 yum 相关的进程列表。
结束 yum 进程:
一旦你找到了正在运行的 yum 进程的进程 ID(PID),你可以使用 kill 命令来结束它:
kill -9 PID
将 PID 替换为实际的进程 ID。
检查锁文件:
如果 yum 进程没有响应或已经被终止,但锁文件仍然存在,你可能需要手动删除它。锁文件通常位于 /var/run/yum.pid。使用以下命令查看锁文件:
ls -l /var/run/yum.pid
删除锁文件:
如果锁文件存在并且 yum 进程已经不在运行,你可以使用以下命令删除它:
rm /var/run/yum.pid
清理 yum 缓存:
有时,清理 yum 缓存也可以解决一些问题:
yum clean all
重新尝试更新:
在结束进程或删除锁文件后,你可以尝试再次运行 yum update:
yum update
从容器复制文件到宿主机
现在我们想要将容器的 /home/licence.txt 文件复制到宿主机的 /home 目录下。执行如下命令:
docker cp nginx-web:/home/licence.txt /home
从宿主机复制文件到容器
现在我们想要将宿主机的 /home/licence.txt 文件复制到容器的 /home 目录下。执行如下命令:
docker cp /home/licence.txt nginx-web:/home
一次性重启name=redis所有容器
docker start $(docker ps -aqf “name=redis-*”)