部署docker :

第一步:下载docker服务

sudo apt-get update && sudo apt-get install -y curl gnupg && curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && 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 && sudo apt-get update && sudo apt-get install -y docker-ce

查看docker版本:

docker --version
 

配置dokcer国内镜像源

# 1. 配置国内镜像源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<
EOF
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn"
  ]
}
EOF

# 2. 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker

# 3. 验证镜像源
docker info | grep -A 5 "Registry Mirrors"

# 4. 测试拉取镜像
docker run hello-world

重启docker服务

systemctl daemon-reload

systemctl restart docker.service
 

以下是在 Ubuntu 系统上完整操作的代码化、命令化流程,从零开始构建一个 Flask Web 服务的 Docker 镜像并运行。
所有步骤均为 可复制粘贴的终端命令,适合在 Ubuntu 20.04/22.04 等系统上执行。


✅ 目标

在 Ubuntu 上:

  1. 创建 Flask 项目
  2. 编写 Dockerfile
  3. 构建镜像
  4. 运行容器
  5. 测试服务

最终访问 http://localhost:3000 能看到:<h1>Hello from Docker!</h1>


🧰 前提条件

确保已安装:

  • Docker
  • Python3 和 pip(用于本地测试,非必须)

🔧 安装 Docker(如果未安装)

# 更新包索引
sudo apt update

# 安装必要依赖
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg

# 添加 Docker 仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 更新包索引
sudo apt update

# 安装 Docker 引擎
sudo apt install -y docker-ce docker-ce-cli containerd.io

# 将当前用户加入 docker 组(避免每次用 sudo)
sudo usermod -aG docker $USER

# 提示用户重新登录或重启 shell
echo "✅ Docker 安装完成!请退出并重新登录,或运行: newgrp docker"

⚠️ 执行完 usermod 后,请退出终端并重新登录,否则后续命令可能需要加 sudo。


📁 步骤 1:创建项目目录并进入

mkdir myweb && cd myweb

📄 步骤 2:创建 app.py

cat > app.py << 'EOF'
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return '<h1>Hello from Docker!</h1>'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=3000)
EOF

📄 步骤 3:创建 requirements.txt

cat > requirements.txt << 'EOF'
Flask==3.0.3
EOF

📄 步骤 4:创建 Dockerfile

cat > Dockerfile << 'EOF'
# 第一阶段:构建并安装依赖
FROM python:3.11-alpine AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt

# 第二阶段:运行环境
FROM python:3.11-alpine
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY app.py ./
ENV PATH=/root/.local/bin:$PATH
EXPOSE 3000
CMD ["python", "app.py"]
EOF

🐳 步骤 5:构建 Docker 镜像

docker build -t myweb:v1 .

✅ 预期输出:成功构建镜像,最后显示 Successfully tagged myweb:v1


▶️ 步骤 6:运行容器

docker run -d -p 3000:3000 --name myweb myweb:v1

✅ 预期输出:一串容器 ID(如 a1b2c3d4e5f6)


🔍 步骤 7:测试服务

方法 1:使用 curl 测试

curl http://localhost:3000

✅ 预期输出:

<h1>Hello from Docker!</h1>

方法 2:浏览器访问

打开浏览器,访问:

http://localhost:3000

你应该能看到:Hello from Docker!


🔧 步骤 8:(可选)查看日志

docker logs myweb

🛑 步骤 9:(可选)停止并清理

# 停止容器
docker stop myweb

# 删除容器
docker rm myweb

# 删除镜像
docker rmi myweb:v1

🎯 总结:一键复制执行清单

# 1. 创建项目
mkdir myweb && cd myweb

# 2. 创建 app.py
cat > app.py << 'EOF'
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return '<h1>Hello from Docker!</h1>'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=3000)
EOF

# 3. 创建 requirements.txt
echo "Flask==3.0.3" > requirements.txt

# 4. 创建 Dockerfile
cat > Dockerfile << 'EOF'
FROM python:3.11-alpine AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt

FROM python:3.11-alpine
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY app.py ./
ENV PATH=/root/.local/bin:$PATH
EXPOSE 3000
CMD ["python", "app.py"]
EOF

# 5. 构建镜像
docker build -t myweb:v1 .

# 6. 运行容器
docker run -d -p 3000:3000 --name myweb myweb:v1

# 7. 测试
curl http://localhost:3000

✅ 成功标志

当你看到:

<h1>Hello from Docker!</h1>

恭喜你!你已经成功在 Ubuntu 上:

  • 从零搭建了一个 Web 服务
  • 使用 Docker 容器化打包
  • 构建并运行了镜像

这是现代云原生开发的核心技能,继续加油!🚀

更多推荐