Docker基础篇——最全讲解
创始人
2025-06-01 21:44:32

文章目录

  • 一、CentOS安装docker
  • 二、启动帮助类命令
  • 三、镜像命令
    • 1.名词概念
    • 2.常用命令
      • 2.1 镜像命令
      • 2.2 容器命令
        • 2.2.1:常用参数
        • 2.2.2:常用指令
      • 2.3 安装单机mysql、redis

一、CentOS安装docker

docker官网
1)yum安装gcc相关:

yum -y install gcc
yum -y install gcc-c++

2)安装软件包:

yum install -y yum-utilsyum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3)更新yum软件包索引:

yum makecache fast

4)安装Docker CE:

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5) 启动docker:

systemctl start docker

6) 阿里云镜像加速器配置:
在这里插入图片描述
在这里插入图片描述

二、启动帮助类命令

  • 启动docker:systemctl start docker
  • 停止docker:systemctl stop docker
  • 重启docker:systemctl restart docker
  • 查看docker状态:systemctl status docker
  • 开机启动:systemctl enable docker
  • 查看docker概要信息:docker info
  • 查看docker总体帮助文档:docker --help
  • 查看docker命令帮助文档:docker具体命令 --help

三、镜像命令

1.名词概念

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签版本号
  • IMAGE ID:镜像ID
  • CREATED:镜像创建的时间
  • SIZE:镜像大小

2.常用命令

2.1 镜像命令

  • 列出本地所有镜像:
docker images
REPOSITORY   TAG           IMAGE ID       CREATED         SIZE
redis        6.2.11        6fce9af058e8   2 weeks ago     113MB
mysql        8.0           3218b38490ce   15 months ago   516MB
registry     latest        b8604a3fe854   16 months ago   26.2MB
ubuntu       latest        ba6acccedd29   17 months ago   72.8MB
tomcat       8.0.15-jre7   8384f49437b3   8 years ago     355MB
  • 只显示镜像ID:
docker images -q6fce9af058e8
3218b38490ce
b8604a3fe854
ba6acccedd29
8384f49437b3
  • 在远程库搜索镜像:docker search 镜像名称
docker search redis
NAME                                DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
redis                               Redis is an open source key-value store that…   11926     [OK]
redislabs/redisearch                Redis With the RedisSearch module pre-loaded…   56
redislabs/redisinsight              RedisInsight - The GUI for Redis                81
redislabs/rebloom                   A probablistic datatypes module for Redis       22                   [OK]
redislabs/redis                     Clustered in-memory database engine compatib…   36
redislabs/rejson                    RedisJSON - Enhanced JSON data type processi…   53
redislabs/redisgraph                A graph database module for Redis               26                   [OK]
redislabs/redismod                  An automated build of redismod - latest Redi…   33                   [OK]
redis/redis-stack                   redis-stack installs a Redis server with add…   41
redislabs/redistimeseries           A time series database module for Redis         12
redis/redis-stack-server            redis-stack-server installs a Redis server w…   21
  • 拉取镜像:docker pull 镜像名称
docker pull redis:6.0
  • 在远程库查询前n条镜像:docker search --limit n 镜像名称
docker search --limit 5 redis
  • 删除镜像:docker rmi 镜像名称(镜像ID)
docker rmi redis:6.0
docker rmi 6fce9af058e8
  • 强制删除镜像:docker rmi -f 镜像ID
docker rmi -f 6fce9af058e8
  • 删除全部镜像(慎重):docker rmi -f $(docker images -qa)
docker rmi -f $(docker images -qa)

docker虚悬镜像:仓库名、标签都是none的镜像,俗称虚悬镜像dangling inamge

2.2 容器命令

2.2.1:常用参数

–name=“容器新名字” 为容器指定一个名称
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
-i: 以交互模式运行容器,通常与-t同时使用
-t: 为容器重新分配一个伪输入终端,通常与-i同时使用
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
退出 exit

2.2.2:常用指令

  • 新建并启动容器:
交互式容器:
docker run -it --name=myu1 ubuntu  /bin/bash
守护式容器:
docker run -d redis
  • 列出当前所有正在运行的容器:
docker ps
  • 退出容器:
exit
ctrl+p+q
两者区别:exit容器停止,ctrl+p+q容器不停止
  • 启动已经停止的容器:docker start 容器ID或容器名
docker start redis
  • 重启容器:docker restart 容器ID或容器名
docker restart redis
  • 停止容器:
docker stop redis
  • 强制停止容器:
docker kill redis
  • 删除已经停止的容器:docker rm 容器ID或容器名
docker rm redis
  • 查看容器日志:docker logs 容器ID
docker logs c632a8676b73 
  • 查看容器内运行进程:docker top 容器ID
docker top c632a8676b73
  • 查看容器内部细节:docker inspect 容器ID
docker inspect c632a8676b73
  • 进入正在运行的容器并以命令行交互:
docker exec -it c632a8676b73 /bin/bash
docker attach c632a8676b73
两者区别:attach直接进入容器启动命令终端,不会启动新的进程,用exit退出,会导致容器停止。 exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器停止
  • 从容器内拷贝文件到主机上:docker cp 容器ID:容器内路径 目的主机路径
docker cp f400fb93b8da:/tmp/a.txt /root
  • 导入和导出容器:
docker export 容器ID > name.tar
cat name.tar | docker import - 镜像用户/镜像名:镜像版本号
  • 搭建docker本地库
docker pull registry
vim /etc/docker/daemon.json{ "insecure-registries": ["192.168.80.10:5000"], #添加此段,“,”不可少,ip是本机IP地址"registry-mirrors": ["https://ox6a5bka.mirror.aliyuncs.com"]
}systemctl daemon-reload
systemctl restart docker.service
docker create -it registry /bin/bash
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
'//-p指定端口,一内一外;-v表示挂载,前者是宿主机,后者是容器'
  • commit命令生成新的镜像:
docker commit -m="安装了vim" -a="zhang" f400fb93b8da vimubuntu
  • 将镜像推到本地库:
curl -XGET http://xxx.xxx.xx.xx:5000/v2/_catalog
docker pull xxx.xxx.xx.xx:5000/ipconfigubuntu:1.2
  • 容器数据卷:
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it --privileged=true -v /www/local_data:/tmp/docker_data:rw(ro) --name=u1 ubuntu  读写或只读

2.3 安装单机mysql、redis

docker pull mysql:8.0
docker run -d -p 3306:3306 --privileged=true -v /www/mysql/log:/var/log/mysql -v /www/mysql/data:/var/lib/mysql -v /www/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=Zhang0727 --name mysql8 mysql:8.0.15
docker pull redis:6.0
docker run -p 6379:6379 --name=redis6 --privileged=true -v /www/redis/redis.conf:/etc/redis/redis.conf -v /www/redis/data:/data -d redis:6.2.11 redis-server /etc/redis/redis.conf

相关内容

热门资讯

2025上半年哪些国内新游最赚... 文 | 点点数据,作者 | April Z转眼间2025年已经过半,根据今年已经发布的《中国游戏产业...
两度易主、三任托管,这一次弘元... 文 | 华夏能源网在第二次破产重整后,“光伏老厂”无锡尚德迎来新一任托管方。华夏能源网(公众号hxn...
“身价暴涨”500%,蜜雪冰城... 文 | 电商在线“入行十年来,第一次见到这么贵的黄柠檬。”近日,“柠檬疯涨似黄金”“柠檬水成本飙升”...
青岛造芯新势力突击“联动”无锡... 7月11日复牌首日,长龄液压(605389.SH)以一字涨停告别两连跌阴霾,股价强势反弹的核心推力,...
对标泡泡玛特?AI玩具厂商的必... 文|执牛耳传媒从产业基础看,AI 玩具凭借场景多元、客群广泛、产业链成熟等优势,早已成为 AI 技术...