docker启动一个helloworld(公司内网服务器)

发布于:2024-12-20 ⋅ 阅读:(77) ⋅ 点赞:(0)

我来介绍几种启动 Docker Hello World 的方法:

  1. 最简单的方式
docker run hello-world

这会自动下载并运行官方的 hello-world 镜像。
在这里插入图片描述

  1. 使用 Nginx 作为 Hello World
docker run -d -p 80:80 nginx

在这里插入图片描述
-d: (detach) 在后台运行容器,不会占用当前终端
-p 80:80: 端口映射
第一个 80 是主机端口(外部访问端口)
第二个 80 是容器内部端口
格式为 主机端口:容器端口
nginx: 使用的镜像名称
然后访问 http://localhost 就能看到 Nginx 欢迎页面。
可以通过curl命令看一下Localhost
在这里插入图片描述

  1. 自己创建一个 Hello World 容器

首先创建一个 Dockerfile

FROM ubuntu
CMD echo "Hello World from Docker!"

然后构建和运行:

# 构建镜像
docker build -t my-hello-world .

# 运行容器
docker run my-hello-world

在这里插入图片描述
直接下了一个20G的ubuntu镜像在本地
在这里插入图片描述

  1. 使用 Python 创建 Hello World

创建 Dockerfile

FROM python:3.8-slim
WORKDIR /app
COPY . .
CMD ["python", "-c", "print('Hello World from Python!')"]

构建和运行:

docker build -t python-hello .
docker run python-hello

常用的 Docker 命令:

  • docker ps - 查看运行中的容器
  • docker images - 查看本地镜像
  • docker stop <容器ID> - 停止容器
  • docker rm <容器ID> - 删除容器
  • docker rmi <镜像ID> - 删除镜像

这些是最基础的 Docker Hello World 示例,你可以根据需要选择合适的方式。

容易遇到的问题:

1、docker连接问题

docker: Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See ‘docker run --help’.

需要改用国内镜像源

编辑或创建 /etc/docker/daemon.json 文件(Windows 通常在 %programdata%\docker\config\daemon.json),添加以下内容:

{
    "registry-mirrors": [
        "https://mirror.ccs.tencentyun.com",
        "https://registry.docker-cn.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://hub-mirror.c.163.com"
    ]
}

注意如果原先json中有文件,键之间需要加逗号

{
    "registry-mirrors": [
        "https://mirror.ccs.tencentyun.com",
        "https://registry.docker-cn.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://hub-mirror.c.163.com"
    ],   // 这里需要加逗号
    "dns": ["192.10.0.2", "8.8.8.8"]
}

然后重启服务

sudo systemctl daemon-reload
sudo systemctl restart docker