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 查看容器详细信息
相关推荐
乌托邦的逃亡者9 分钟前
Dockerfile的配置和使用
linux·运维·docker·容器
七七powerful18 分钟前
loki监控docker容器&系统&nginx日志的告警规则
nginx·docker·容器
SPC的存折2 小时前
8、Docker镜像瘦身
运维·docker·容器
江湖有缘4 小时前
可视化Docker资源清理方案:PruneMate容器化部署实战
运维·docker·容器
亚空间仓鼠4 小时前
Docker 容器技术入门与实践 (四):Docker存储与网络
网络·docker·容器
java_logo4 小时前
Docker 部署 Hermes Agent 完整指南(Windows / Linux 通用)
linux·windows·docker·hermes-agent部署·docker部署hermes·hermes-agent教程·hermes-agent文档
橄榄熊4 小时前
docker MySQL 密码报错,重新修改保留原样的数据
mysql·docker·容器
Ciao1124 小时前
Docker连接失败时替换第三方镜像源,不需要重启docker
docker·容器·eureka
AI松子6664 小时前
vscode远程docker容器时报错
ide·vscode·docker
适应规律4 小时前
Docker和虚拟机
运维·docker·容器