docker随笔

一、安装步骤

1. 准备工作

安装依赖包,用于配置https仓库

复制代码
sudo yum install -y  yum-utils device-mapper-persistent-data lvm2

配置国内镜像

复制代码
sudo yum-config-manager --add-repo https://vsxcs7sq.mirror.aliyuncs.com
2. 安装docker引擎

安装最新版

复制代码
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装指定版

复制代码
① 查询可用版本
yum list docker-ce --showduplicates | sort -r

② 安装指定版本,VERSION_STRING替换为具体的版本号
sudo yum install -y docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
3. 启动,并设置开机自启
复制代码
# 启动 Docker 服务
sudo systemctl start docker
 
# 设置开机自启
sudo systemctl enable docker
 
# 查看 Docker 运行状态(验证是否启动成功)
sudo systemctl status docker
4. 验证安装是否成功

运行下面的命令,如果能正常输出"Hello from Docker!"就表示安装成功!

复制代码
docker run hello-world
5. 更换镜像源
复制代码
# 创建配置目录(若不存在)
sudo mkdir -p /etc/docker
 
# 写入镜像源配置
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["你想要配置的镜像源"]
}
EOF
 
# 重启 Docker 使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker

二、 安装常用工具

1. 安装redis
复制代码
docker run -d \
  --name redis \          # 容器命名为 redis,和你的 mysql 容器命名逻辑一致
  -p 6370:6379 \          # 端口映射:主机 6380 端口 → 容器 6379(Redis 默认端口)
  -e TZ=Asia/Shanghai \   # 设置时区为上海
  -e REDIS_PASSWORD=123456 \  # 设置 Redis 密码(必填,否则无密码访问有风险)
  redis:7 \               # 使用 redis:7 镜像
  --requirepass 123456    # Redis 启动参数:强制要求密码认证(和上面的密码保持一致)

解读:

  • docker run -d :创建并运行一个容器,-d则是让容器以后台进程运行
  • --name redis: 给容器起个名字叫redis,名字随便取,不重复就行
  • -p 6370:6379: 设置端口映射。
    • 容器是隔离环境,外界访问不到。但是可以将宿主机端口映射到容器内的端口,当访问宿主机指定端口时,就是在访问容器内的端口了。
    • 容器内端口往往是由容器内的进程决定,例如redis进程默认端口是6379,因此容器内端口一定是6379;而宿主机端口则可以任意指定,一般与容器内保持一致。
    • 格式: -p 宿主机端口:容器内端口,示例中就是将宿主机的6370映射到容器内的6379端口
  • -e TZ=Asia/Shanghai : 配置容器内进程运行时的一些参数
    • 格式:-e KEY=VALUE,KEY和VALUE都由容器内进程决定
    • 案例中,TZ=Asia/Shanghai是设置时区;REDIS_PASSWORD=123456是设置redis默认密码
  • redis:7 : 设置镜像名称,Docker会根据这个名字搜索并下载镜像
    • 格式:REPOSITORY:TAG,例如redis:7.0,其中REPOSITORY可以理解为镜像名,TAG是版本号
    • 在未指定TAG的情况下,默认是最新版本,也就是redis:latest
      #查看redis运行状态

docker ps | grep redis

#进入redis容器(这是一条 Docker 命令,用于在运行中的redis容器里面执行 redis-cli)

docker exec -it redis redis-cli

#执行后输入密码认证(替换为你设置的密码)

127.0.0.1:6379> AUTH 123456

#返回 OK 表示认证成功,可正常使用

127.0.0.1:6379> SET test "hello redis"

127.0.0.1:6379> GET test # 应返回 "hello redis"

#windows连接redis

#格式:redis-cli -h 服务器IP -p 映射端口 -a 密码

redis-cli -h 192.168.100.128 -p 6380 -a 123456

2. 安装mysql
复制代码
docker run -d \
  --name zzzMySql \
  -p 3301:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123456 \
  mysql:8

解读:

  • docker run -d :创建并运行一个容器,-d则是让容器以后台进程运行
  • --name zzzMySql : 给容器起个名字叫zzzMySql
  • -p 3301:3306 : 设置端口映射。
    • 容器是隔离环境,外界不可访问。但是可以将宿主机端口映射到容器内的端口,当访问宿主机指定端口时,就是在访问容器内的端口了。
    • 容器内端口往往是由容器内的进程决定,例如MySQL进程默认端口是3306,因此容器内端口一定是3306;而宿主机端口则可以任意指定,一般与容器内保持一致。
    • 格式: -p 宿主机端口:容器内端口,示例中就是将宿主机的3301映射到容器内的3306端口
  • -e TZ=Asia/Shanghai : 配置容器内进程运行时的一些参数
    • 格式:-e KEY=VALUE,KEY和VALUE都由容器内进程决定
    • 案例中,TZ=Asia/Shanghai是设置时区;MYSQL_ROOT_PASSWORD=123456是设置MySQL默认密码
  • mysql:8 : 设置镜像名称,Docker会根据这个名字搜索并下载镜像
    • 格式:REPOSITORY:TAG,例如mysql:8.0,其中REPOSITORY可以理解为镜像名,TAG是版本号
    • 在未指定TAG的情况下,默认是最新版本,也就是mysql:latest

三、常用命令

docker官方网址:https://docs.docker.com/reference/cli/docker/

命令 说明 示例
docker pull 拉取镜像 docker pull nginx:1.23.4
docker tag 标记镜像 docker tag local-image:latest your-registry.com/repo-name:tag
docker push 推送镜像 docker push your-registry.com/repo-name:tag
docker images 查看本地镜像
docker rmi 删除本地镜像 通过镜像 ID 删除(docker rmi a1b2c3d4),通过镜像名以及标签删除(docker rmi ubuntu:latest),强行删除正在使用的镜像(docker rmi -f a1b2c3d4),清理所有未使用的镜像(清理所有未使用的镜像)
docker run 创建并运行容器(不能重复创建)
docker stop 停止指定容器
docker start 启动指定容器
docker restart 重新启动容器
docker rm 删除指定容器
docker ps 查看容器
docker logs 查看容器运行日志
docker exec 进入容器
docker save 保存镜像到本地压缩文件
docker load 加载本地压缩文件到镜像
docker inspect 查看容器详细信息
相关推荐
小李小李快乐不已3 小时前
docker(2)容器管理与镜像操作
运维·c++·docker·容器
xuefeiniao3 小时前
本地可以Docker拉取,线上服务器无法拉去镜像,多个ai都无法解决
服务器·docker·eureka
wuyikeer3 小时前
docker 安装 mysql
mysql·adb·docker
sjmaysee3 小时前
docker离线安装及部署各类中间件(x86系统架构)
docker·中间件·系统架构
FinelyYang3 小时前
nginx的docker镜像封禁地区IP
java·nginx·docker
XMYX-03 小时前
Docker 未映射端口 两种无需重启容器的访问方法
docker·容器·socat
大龄烤红薯3 小时前
docker-【容器数据存储位置分析】以Mysql容器为例
mysql·adb·docker
斯普信专业组3 小时前
Kubeasz快速部署高可用k8s集群入门到实战
云原生·容器·kubernetes
a里啊里啊3 小时前
Docker安装全流程-包括修改默认安装路径
运维·docker·容器