安装Docker
更新yum包
shell复制
yum update -y
安装需要依赖
shell复制
yum install -y yum-utils
设置镜像仓库
shell复制
# 默认的
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
更新yum软件包索引
shell复制
yum makecache fast
安装docker社区版
shell复制
yum install -y docker-ce docker-ce-cli containerd.io
开机自启
shell复制
systemctl enable docker
启动docker
shell复制
systemctl start docker
查看docker版本
shell复制
docker version
拉取镜像并启动一个容器
shell复制
docker run --rm hello-world # –rm容器停止自动删除容器,保留镜像
卸载
shell复制
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
rm -rf /var/lib/docker/
rm -rf /var/lib/containerd
常用命令
设置日志文件大小
shell复制
docker run --log-opt max-size=100m --log-opt max-file=3 # 最大100M,最多3个日志文件
查看日志文件路径
shell复制
docker inspect --format='{{.LogPath}}' 容器ID
清空日志文件
shell复制
echo "" > $(docker inspect --format='{{.LogPath}}' 容器ID)
查看日志最新的100条
shell复制
docker logs --tail=100 容器ID
实时查看最新日志
shell复制
docker logs -fn 100 容器ID
清理资源
shell复制
docker system prune
删除那些已停止的容器、dangling 镜像、未被容器引用的 network 和构建过程中的 cache
清理已经停止运行的容器
shell复制
docker rm $(docker ps --all -q -f status=exited)
清理镜像
shell复制
docker image prune -a # 删除所有没有用的镜像,而不仅仅是临时文件
配置文件 daemon.json
shell复制
vim /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
导出与导入
导出镜像
shell复制
docker save redis:7.0.8 > redis7.0.8.tar
导入镜像
shell复制
docker load < redis7.0.8.tar
修改现有镜像(以redis为例)
拉取镜像
shell复制
docker pull redis:7.0.8
启动容器
shell复制
docker run -itd --name redis --network=host redis:7.0.8
进入容器
shell复制
docker exec -it redis bash
修改容器实现查看ip地址
shell复制
# 替换sources.list
echo 'deb http://mirrors.aliyun.com/debian bullseye main'>/etc/apt/sources.list
echo 'deb http://mirrors.aliyun.com/debian-security bullseye-security main'>>/etc/apt/sources.list
echo 'deb http://mirrors.aliyun.com/debian bullseye-updates main'>>/etc/apt/sources.list
# 更新
apt-get update -y
# 安装 iproute2
apt install -y iproute2
# 此时可以查看ip
ip addr
# 退出容器
exit
保存容器为镜像
shell复制
docker commit redis jinzhengba/redis:7.0.8
通过Dockerfile构建镜像(以redis为例)
目录结构
shell复制
/home/jinzhenba-redis/
└── Dockerfile
Dockerfile
shell复制
FROM redis:7.0.8
MAINTAINER jinzhengba
# 设置时区
RUN ["rm","-rf","/etc/localtime"]
RUN ["ln","-sf","/usr/share/zoneinfo/Asia/Shanghai","/etc/localtime"]
EXPOSE 6379
CMD [ "redis-server" ]
构建镜像
shell复制
docker build -t jinzhengba/redis:7.0.8 .
上传到Docker仓库
需要前往 Docker仓库 新建名为 jinzhengba/redis 的仓库
登录docker
shell复制
docker login
推送镜像
shell复制
docker push jinzhengba/redis:7.0.8
连接ClashVerge代理
shell复制
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=http://192.168.31.45:7899"
Environment="HTTPS_PROXY=192.168.31.45:7899"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 删除代理
sudo rm -rf /etc/systemd/system/docker.service.d
sudo systemctl daemon-reload
sudo systemctl restart docker