当前位置: 首页 > news >正文

Docker 之入门安装

文章目录

  • CentOS7 安装 DockerCE
  • Ubuntu16 安装 DockerCE
  • Ubuntu20 安装 Docker
  • Docker Compose 安装与卸载
  • Docker常用命令
  • Ubuntu24 安装 Docker
  • Docker 常用命令
  • Centos安装Docker(指定Docker版本)
  • 配置镜像加速器
  • 数据卷
    • 创建nginx容器
    • 创建mysql容器
  • Docker 容器网络

Docker 镜像使用和安装
Docker安装官方文档
Dokce镜像官网

CentOS7 安装 DockerCE

在 CentOS 下安装 Docker Engine

一起执行下面的命令:

# 1、移除以前docker相关包 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 2、配置yum源 sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 3、安装docker sudo yum install -y docker-ce docker-ce-cli containerd.io # 启动 docker、设置 docker 开机自启 systemctl enable docker --now

Ubuntu16 安装 DockerCE

# 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd # 安装 https 相关的软件包 sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common # 添加 阿里云 的apt仓库 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable" # 安装 Docker sudo apt-get update sudo apt-get install docker-ce

设置开机自启动:

sudo systemctl enable docker

Ubuntu20 安装 Docker

卸载旧版本:

sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get update

安装 https 相关的软件包:

sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release

添加 Docker 的 GPG 密钥:

sudo mkdir -p /etc/apt/keyrings curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

向 sources.list 中添加 Docker 软件源:

echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

再次更新 apt 包索引:

sudo apt-get update

安装最新版本的 Docker Engine、containerd 和 Docker Compose:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

设置开机自启动:

sudo systemctl enable docker

Docker Compose 安装与卸载

Docker Compose下载地址:
https://github.com/docker/compose/releases/download/v2.29.6/docker-compose-linux-x86_64
将下载的文件复制到/usr/local/bin目录,重命名为:docker-compose
添加可执行权限sudo chmod +x /usr/local/bin/docker-compose

# docker-compose -v Docker Compose version v2.27.3

卸载:
删除文件即可:sudo rm /usr/local/bin/docker-compose

Docker常用命令

查看正在运行的容器

# 查看正在运行的容器 docker ps # 查看所有的容器,包括已经停止的。 docker ps -a

查看所有镜像

docker images

拉取镜像

docker pull <镜像名:tag> # 例如以下代码 docker pull mysql

停止、启动、杀死指定容器

docker start <容器名 or ID> docker stop <容器名 or ID> docker kill <容器名 or ID>

删除容器

docker rm -f <容器名 or ID> # 删除所有容器 docker rm -f $(docker ps -a -q)

查看容器日志

docker logs -f <容器名 or ID>

进入容器

docker exec -it <容器名 or ID> bash

Ubuntu24 安装 Docker

1. 卸载旧版本(可选但建议执行)
为避免冲突,先移除系统中可能存在的旧版 Docker 相关包:

forpkgindocker.io docker-docdocker-composedocker-compose-v2 podman-docker containerd runc;dosudoapt-getremove$pkg;done

2. 安装依赖包
更新软件源并安装所需的工具:

sudoaptupdatesudoaptinstall-yca-certificatescurlgnupg lsb-release

3. 添加 Docker 的 GPG 密钥和软件源(使用阿里云镜像)

# 创建密钥存储目录sudomkdir-p/etc/apt/keyrings# 下载阿里云镜像上的 Docker GPG 密钥curl-fsSLhttps://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpgsudochmoda+r /etc/apt/keyrings/docker.gpg# 添加 Docker 阿里云软件源(Ubuntu 24.04 适用)echo\"deb [arch=$(dpkg --print-architecture)signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(lsb_release-cs)stable"|sudotee/etc/apt/sources.list.d/docker.list>/dev/null

4. 安装 Docker Engine
更新软件包索引,然后安装 Docker 及所有核心组件:

sudoaptupdatesudoaptinstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5. 启动 Docker 并设置开机自启

sudosystemctlenabledockersudosystemctl startdocker

6. 配置国内镜像加速(可选但强烈建议)
编辑 Docker 配置文件,添加国内镜像源(如中科大、网易、阿里云),可以大幅提升拉取镜像的速度:

sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json<<-'EOF' { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "https://mirror.aliyuncs.com" ] } EOFsudosystemctl daemon-reloadsudosystemctl restartdocker

Docker 常用命令

# 查看正在运行的容器 docker ps # 查看所有的容器,包括已经停止的。 docker ps -a 查看所有镜像 docker images # 拉取镜像 docker pull <镜像名:tag> # 如果不写tag,默认就是latest,最新的版本 docker pull mysql docker pull mysql:5.7.42 # 停止、启动、杀死指定容器 docker start/stop/kill/restart <容器名 or ID> # 删除容器 docker rm -f <容器名 or ID>

进入容器

docker exec -it <容器名 or ID> /bin/bash

Centos安装Docker(指定Docker版本)

# 列出当前所有docker的包 yum list installed | grep docker # 卸载docker包 yum -y remove [docker的包名称] # 删除docker的所有镜像和容器 rm -rf /var/lib/docker # 如果系统没有docker可以直接从这一步开始 # 安装必要的软件包 sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 # 设置下载的镜像仓库 sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # 列出需要安装的版本列表 yum list docker-ce --showduplicates | sort -r # 安装指定版本(这里使用18.0.1版本) sudo yum install docker-ce-18.06.1.ce # 查看版本 docker -v # 启动Docker sudo systemctl start docker # 设置开机启动 sudo systemctl enable docker # 重启Docker sudo systemctl restart docker

配置镜像加速器

sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://docker.1panel.live","https://hub.rat.dev"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

数据卷

数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。
数据卷目录:/var/lib/docker/volumes

如何挂载数据卷:
在创建容器时,利用 -v 数据卷名:容器内目录完成挂载。
容器创建时,如果发现挂载的数据卷不存在时,会自动创建。

数据卷的常见命令:
查看数据卷:docker volume ls
删除数据卷:docker volume rm [数据卷目录名称]
查看数据卷详情:docker volume inspect [数据卷目录名称]
删除未使用的数据卷:docker volume prune

查看容器详情:docker inspect [容器名]
挂载的数据卷目录详情:

创建nginx容器

挂载html目录

docker run -d --name=nginx -p 80:80 -v html:/usr/share/nginx/html nginx docker run -d \ --name=nginx \ -p 80:80 \ -p 18080:18080 \ -v /home/nginx/html:/usr/share/nginx/html \ -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \ --network hm\ nginx

创建mysql容器

并挂载数据和配置文件目录:

# 保存数据 mkdir /root/mysql/data # 初始化数据 mkdir /root/mysql/init # 配置文件 mkdir /root/mysql/conf

将初始化脚本复制到 /root/mysql/init
将配置文件复制到 /root/mysql/conf,mysql.cnf

[client] default_character_set=utf8mb4 [mysql] default_character_set=utf8mb4 [mysqld] character_set_server=utf8mb4 collation_server=utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'
docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ -v /root/mysql/data:/var/lib/mysql \ -v /root/mysql/init:/docker-entrypoint-initdb.d \ -v /root/mysql/conf:/etc/mysql/conf.d \ mysql

mysql与navicat建立连接出现1251错误:
原因:mysql8之前的版本中加密规则是mysql_native_password,在mysql8之后,加密规则是caching_sha2_password。
解决方案:把mysql用户登录密码加密规则还原成mysql_native_password。

docker exec -it mysql /bin/bash mysql -uroot -p # 修改加密规则 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码'; # 更新用户密码,可以不执行 ALTER USER 'root'@'%' IDENTIFIED BY '新密码' PASSWORD EXPIRE NEVER; FLUSH PRIVILEGES; show variables like "%char%";

Docker 容器网络

# 创建一个网络 docker network create # 查看所有网络 docker network ls # 删除指定网络 docker network rm # 清除未使用的网络 docker network prune # 使指定容器连接加入某网络 docker network connect # 使指定容器连接离开某网络 docker network disconnect # 查看网络详细信息 docker network inspect docker network create net1 docker network inspect net1 docker network connect net1 mysql
http://www.jsqmd.com/news/1308732/

相关文章:

  • 2026 年当下,遵义专业的沥青冷补料加工厂哪家专业,马路坑洼补得快人一步?这玩意儿为啥能让工人们凌晨就抢着用? - 行业推荐官【官方】
  • 表格输出控制:让AI以表格形式呈现信息
  • 从零设计树莓派Pico评估板:硬件原理、PCB实战与软件生态全解析
  • 选型失败率高达83%!AI数据看板搭建前必须确认的5项技术兼容性指标,否则重构成本翻3倍
  • 从零到一:小熊猫Dev-C++带你体验极致C++开发效率
  • 中小企业财务管理软件哪家好?2026 主流品牌横评,金税六期合规首选清单
  • 为什么92%的AI边缘项目6个月内重构?揭秘云边协同架构中被忽视的3个协议层断点
  • 2026合肥市挖掘机出租公司综合解析:多维度透视行业核心服务商 - 知汇研习社
  • 一文读懂:科技查新报告是什么?到底怎么查?
  • 树莓派SX1262 LoRa HAT开发指南:从硬件拆解到星型网络构建
  • KMS智能激活脚本终极指南:一键永久激活Windows和Office的完整教程
  • 2026年7月知名的数控车床采购品牌,新能源数控车床/机械手数控车床/级柱数控机床/医疗器械数控机床,数控车床采购推荐 - 品牌推荐师
  • PoseX:分子对接的“自动驾驶”系统,攻克Cross-Docking难题
  • LLM赋能电商数据分析:架构设计与实战优化
  • shim含义介绍(一个放在服务器上的极小脚本(Shim/垫片),将“部署入口”和“部署逻辑”分离。服务器上只保留一个极简、固定不变的“门卫”(shim))GitOps / IaC模式
  • AI编程介入看板管理后,团队吞吐量突增3.2倍?揭秘背后隐藏的4层语义解析层与实时反馈机制
  • 2026 年更新:浮山正规的圆形铸铁闸门源头厂家深度解析与优选指南,汛期河道排水堵点?这款耐腐耐压的老物件,竟是解决难题的关键利器 - 鉴选官
  • 大模型Agent编排中的“幽灵异常”:1个未声明的async异常如何摧毁整条推理流水线?
  • 跨平台动漫追番神器:Mikan Flutter 完整开发指南
  • AI工具从专家到小白:Codex
  • 163MusicLyrics:重新定义音乐歌词处理的工程化解决方案
  • 彩钻、粉钻、黄钻北京回收现状:稀有彩色钻石二手流通保值行情解读 - 一日一测评
  • 2026年赣州源佳美全铝定制家居阳台洗衣柜/浴室柜服务网点核对推荐|电话、地址与到店准备|2026年8月1日资料更新 - GEO99
  • KaTrain围棋AI教练:5个实用技巧快速提升围棋水平
  • 2026成都新都汽车维修解析 | 新都发动机维修门店实力盘点 - 新闻快传
  • WordPress主题选型实战指南:从需求出发,找到最适合你的网站框架
  • MSK实战:Java客户端开发与生产消费全链路配置详解
  • 别让API Key阻挡了你!从零开始,手把手教你拥有第一个本地AI智能体
  • 10 DOF IMU传感器C语言实现:从数据采集到姿态解算全解析
  • 教材课件多语言翻译:格式保留与批量处理实践