Docker 学习笔记
安装Docker
更新yum包
yum update -y
安装需要依赖
yum install -y yum-utils
设置镜像仓库
--默认的
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软件包索引
yum makecache fast
安装docker社区版
yum install -y docker-ce docker-ce-cli containerd.io
开机自启
systemctl enable docker
启动docker
systemctl start docker
查看docker版本
docker version
拉取镜像并启动一个容器
docker run --rm hello-world # –rm容器停止自动删除容器,保留镜像
卸载
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
常用命令
设置日志文件大小
docker run --log-opt max-size=100m --log-opt max-file=3 # 最大100M,最多3个日志文件
查看日志文件路径
docker inspect --format='{{.LogPath}}' 容器ID
清空日志文件
echo "" > $(docker inspect --format='{{.LogPath}}' 容器ID)
查看日志最新的100条
docker logs --tail=100 容器ID
实时查看最新日志
docker logs -fn 100 容器ID
清理资源
docker system prune
删除那些已停止的容器、dangling 镜像、未被容器引用的 network 和构建过程中的 cache
清理已经停止运行的容器
docker rm $(docker ps --all -q -f status=exited)
清理镜像
docker image prune -a # 删除所有没有用的镜像,而不仅仅是临时文件
配置文件 daemon.json
vim /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
导出与导入
导出镜像
docker save redis:7.0.8 > redis7.0.8.tar
导入镜像
docker load < redis7.0.8.tar
修改现有镜像以redis为例
拉取镜像
docker pull redis:7.0.8
启动容器
docker run -itd --name redis --network=host redis:7.0.8
进入容器
docker exec -it redis bash
修改容器实现查看ip地址
# 替换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
保存容器为镜像
docker commit redis jinzhengba/redis:7.0.8
通过Dockerfile构建镜像以redis为例
目录结构
/home/jinzhenba-redis/
└── Dockerfile
Dockerfile
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"]
构建镜像
docker build -t jinzhengba/redis:7.0.8 .
上传到Docker仓库
需要前往 Docker仓库 新建名为 jinzhengba/redis 的仓库
登录docker
docker login
推送镜像
docker push jinzhengba/redis:7.0.8
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
海边的曼切斯特!
喜欢就支持一下吧