centos 安装 Docker

本文介绍了Docker的出现原因,如系统移植和容器化技术。详细阐述了Docker的三要素——镜像、容器和仓库,并提供了Docker的安装与卸载步骤,包括使用阿里云镜像加速器。此外,文章还涵盖了Docker的基本命令,如镜像的拉取、搜索、删除,以及容器的创建、启动、停止和管理。最后,提到了面试中可能遇到的概念——虚悬镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker

一、Docker为什么出现

  1. 系统平滑移植,容器虚拟化技术

二、Docker三要素

  1. 镜像
  2. 容器
  3. 仓库

三、Docker 地址

  1. https://www.docker.com/
  2. https://hub.docker.com/ 仓库,例如:MySQL、Redis、PHP

四、Docker安装

# 查看进程
ps -ef|grep docker 
# 启动
sudo systemctl start docker 
# 测试
sudo docker run hello-world
# 停止
sudo systemctl stop docker

官网安装链接

  1. 卸载旧版本
    旧版本的 Docker 的名称为docker或docker-engine。在尝试安装新版本之前卸载任何此类旧版本以及相关的依赖项
sudo yum remove docker docker-client  docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engin
  1. 安装yum-utils软件包(提供yum-config-manager 实用程序)并设置存储库。
sudo yum install -y yum-utils
# 官网镜像慢
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 使用阿里云镜像
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装 Docker 引擎
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 卸载 Docker 引擎 ,卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
  1. 主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有映像、容器和卷
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

五、镜像加速器

  1. 阿里云容器镜像服务 地址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://uyh6osb1.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

六、帮忙docker启动类命令

# 开机启动
sudo systemctl enable docker
# 令检查 Docker 服务状态
sudo systemctl is-enabled docker
# 禁用开机启动
sudo systemctl disable docker
sudo systemctl disable docker.socket

# 关闭docker
sudo systemctl stop docker.socket
sudo systemctl stop docker

查看docker 概要信息  docker info
帮助文档  docker --help

七、镜像操作

docker 的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS (联合文件系统)

 1. docker images  列出本机上的镜像
    docker images -a 列出本地所有的镜像(含历史映像层)
    docker images -q 只显示镜像ID
 2. docker search  redis 查找远程仓库
    docker search  redis --limit 55
 3. docker pull redis:6.0.8  下载镜像
 4. docker system df 查看镜像/容器/数据卷所占空间
 5. docker rmi 某个镜像ID或者镜像名  删除镜像
    docker rmi -f 某个镜像ID或者镜像名  强制删除
 6. docker rmi -f $(docker images -qa) 删除全部
// 制作镜像
docker commit -m="提交的描述信息" -a="作者" 容器ID  要创建的目标镜像名:[标签名]

面试题
谈谈docker虚悬镜像是什么?
仓库名、标签都是 <none> 的镜像

八、容器操作

 1. docker run --name="容器新名字"
 2. docker run -it ubuntu /bin/bash  交互式
  	-i 交互式操作
  	-t 终端
  	-p 小写,主机端口:docker 容器端口
  	-P 大写,随机分配端口
  	docker run -d redis 启动守护
 3. docker ps 罗列出在运行的容器
 	-a 列出当前所有正在运行的容器+历史上运行过的
 	-l 显示最近创建的容器
 	-n 显示最近n个创建的容器
 	-q 静默模式,只显示容器编号
 4. exit run进去容器,退出,容器停止
 	ctrl+p+q  run进去容器,退出,容器不停止
 5. docker start 容器ID或者容器名   启动已停止运行的容器
 6. docker restart 容器ID或者容器名   重启容器
 7. docker stop 容器ID或者容器名   停止容器
 8. docker kill 容器ID或者容器名   强制停止容器
 9. docker rm 容器ID   删除已停止的容器
 	-f 强制删除
 10. docker rm -f $(docker ps -a -q)  一次性删除多个容器实例
 	 docker ps -a -q | xargs docker rm
 11. docker logs 容器ID 查看容器日志
 12. docker top 容器ID  查看容器内运行的进程
 13. docker inspect 容器ID 查看容器内部细节
 14. docker exec -it 容器ID /bin/bash  重新进入容器
 	 docker attach 容器ID
 15. docker cp 容器ID:容器内路径  目标主路径    拷贝文件
 16. docker export 容器ID > 文件名.tar  容器导出
 17. cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号   容器导入
 18. docker cp [本地路径] [容器名或ID]:[容器内路径]
     docker cp ./nginx.conf nginx:/etc/nginx/nginx.conf
     docker exec -it nginx cat /etc/nginx/nginx.conf | head
  • 清理 所有未使用的容器、镜像、网络和构建缓存 docker system prune -a
  • 清理未使用的数据卷 volumes 一起清理
    docker system prune --volumes
    ⚠️ 数据卷说明:
    Docker volumes 是容器持久化数据(如数据库)的重要方式。
    如果你误删了 volume,可能会丢失数据库、Redis 等重要数据!

九、将当前用户加入docker用户组

将当前用户加入 docker 用户组,以便该用户在不使用 sudo 的情况下运行 Docker 命令。

sudo gpasswd -a ${USER} docker
# 刷新会话
newgrp docker
# 不需要再写 sudo 啦~
docker ps

十、设置代理

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

#添加以下内容(替换为你的代理地址):
[Service]
Environment="HTTP_PROXY=http://代理地址:端口"
Environment="HTTPS_PROXY=http://代理地址:端口"

# 重启
sudo systemctl daemon-reload
sudo systemctl restart docker

十一、配置镜像地址

容器的日志格式使用 json-file,并限制每个日志文件最大 50MB,最多保留 3 个轮转日志文件,有助于防止日志过大吃满磁盘

vim /etc/docker/daemon.json
{
  "registry-mirrors": [
         "https://docker.m.daocloud.io", 
        "https://docker-0.unsee.tech",
         "https://mirror.iscas.ac.cn",
         "http://mirrors.ustc.edu.cn",
         "https://hub.rat.dev"],
  "data-root":"/data/docker",
  "log-driver":"json-file",
  "log-opts": {"max-size":"50m", "max-file":"3"}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值