这里写目录标题
- 容易遇到的问题:
- 1、docker连接问题
我来介绍几种启动 Docker Hello World 的方法:
- 最简单的方式:
docker run hello-world
这会自动下载并运行官方的 hello-world 镜像。
- 使用 Nginx 作为 Hello World:
docker run -d -p 80:80 nginx
-d: (detach) 在后台运行容器,不会占用当前终端
-p 80:80: 端口映射
第一个 80 是主机端口(外部访问端口)
第二个 80 是容器内部端口
格式为 主机端口:容器端口
nginx: 使用的镜像名称
然后访问 http://localhost 就能看到 Nginx 欢迎页面。
可以通过curl命令看一下Localhost
- 自己创建一个 Hello World 容器:
首先创建一个 Dockerfile
:
FROM ubuntu
CMD echo "Hello World from Docker!"
然后构建和运行:
# 构建镜像
docker build -t my-hello-world .
# 运行容器
docker run my-hello-world
直接下了一个20G的ubuntu镜像在本地
- 使用 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