Docker环境搭建与容器操作全攻略:从入门到实战

发布于:2025-07-16 ⋅ 阅读:(15) ⋅ 点赞:(0)
一、环境搭建

1.1 基础包安装(最小化系统)

# 备份Yum源配置  
mkdir /etc/yum.repos.d/bak  
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/  

配置Yum源示例 可以更换为阿里云镜像  
cat <<EOF > /etc/yum.repos.d/local.repo  
[baseos]  
name=baseos  
baseurl=file:///mnt/BaseOS/  
gpgcheck=0  

[app]  
name=app  
baseurl=file:///mnt/AppStream/  
gpgcheck=0  
EOF  

# 刷新缓存并安装工具包  
yum clean all  
yum install -y vim net-tools bash-completion yum-utils  

📌 关键说明

  • yum-utils 用于管理Docker仓库
  • bash-completion 提供命令补全(执行 bash 刷新)

1.2 Docker安装

# 添加阿里云仓库  
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  

# 安装Docker  
yum install -y docker-ce  

# 启动服务  
systemctl start docker  
systemctl enable docker  
docker -v  # 验证版本  

二、镜像操作

2.1 核心命令

命令 说明
docker search mysql 搜索镜像
docker pull centos:7.8.2003 拉取指定版本
docker images 查看本地镜像
docker rmi mysql:latest 删除镜像

2.2 镜像生命周期管理

# 导出镜像  
docker save mysql:latest -o mysql.tar  

# 导入镜像  
docker load -i mysql.tar  

# 推送镜像到仓库  
docker tag alpine:latest registry.cn-hangzhou.aliyuncs.com/your-namespace/alpine:v1  
docker push registry.cn-hangzhou.aliyuncs.com/your-namespace/alpine:v1  

2.3 镜像加速配置

# 阿里云加速器  
cat <<EOF > /etc/docker/daemon.json  
{  
  "registry-mirrors": ["https://cc2d8woc.mirror.aliyuncs.com"]  
}  
EOF  
systemctl restart docker  

三、容器操作

3.1 基础操作

# 启动容器  
docker run -tid --name os1 --restart always centos:latest  

# 进入容器  
docker exec -ti os1 /bin/bash  

# 查看日志  
docker logs os1  

3.2 容器生命周期

docker stop os1     # 停止容器  
docker start os1    # 启动容器  
docker rm -f os1    # 删除容器  

3.3 端口映射与变量传递

# Nginx容器  
docker run -tid --name web -p 8080:80 nginx  

# MySQL容器  
docker run -tid --name db \  
  -p 3306:3306 \  
  -e MYSQL_ROOT_PASSWORD=redhat \  
  mysql:latest  

3.4 文件操作

# 主机→容器  
docker cp /path/file os1:/container/path/  

# 容器→主机  
docker cp os1:/container/path/file /host/path/  

四、实战案例:部署WordPress

4.1 创建MySQL容器

docker run -tid --name db \  
  -e MYSQL_ROOT_PASSWORD=redhat \  
  -e MYSQL_DATABASE=wordpress \  
  mysql:latest  

4.2 获取MySQL IP

DB_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' db)  

4.3 启动WordPress

docker run -tid --name blog \  
  -e WORDPRESS_DB_HOST=$DB_IP \  
  -e WORDPRESS_DB_USER=root \  
  -e WORDPRESS_DB_PASSWORD=redhat \  
  -p 8080:80 \  
  wordpress:latest  

🌐 访问地址:http://服务器IP:8080


五、容器网络

5.1 网络类型

docker network ls  # 查看所有网络  
  • bridge:默认网络(推荐)
  • host:共享主机网络
  • none:无网络

5.2 自定义网络

# 创建网络  
docker network create my-net  

# 容器加入网络  
docker run -tid --name web --network my-net nginx  

六、容器存储

6.1 永久卷存储

# 具名卷(推荐)  
docker volume create mysql-data  
docker run -tid --name db -v mysql-data:/var/lib/mysql mysql  

# 主机目录映射  
docker run -tid --name web -v /host/data:/container/data nginx  

七、Dockerfile入门

7.1 示例文件

FROM centos:7  
LABEL maintainer="your-email@example.com"  
RUN yum install -y httpd && yum clean all  
COPY index.html /var/www/html/  
EXPOSE 80  
CMD ["httpd", "-D", "FOREGROUND"]  

7.2 构建与运行

docker build -t my-apache .  
docker run -tid --name myweb -p 8080:80 my-apache  

八、命令速查表
功能 命令
镜像管理 docker images docker pull <image> docker rmi <image>
容器操作 docker run [options] <image> docker exec -ti <container> /bin/bash
日志与监控 docker logs <container> docker ps -a
网络管理 docker network create <name> docker network ls
存储管理 docker volume create <name> docker run -v <volume>:<path>

💡 最佳实践

  1. 生产环境使用固定版本标签(如 mysql:8.0 而非 latest)
  2. 容器应保持无状态,关键数据使用卷存储
  3. 多容器应用使用 docker-compose 管理
  4. 定期清理:docker system prune

网站公告

今日签到

点亮在社区的每一天
去签到