下文将详细介绍Docker创建镜像、修改和上传镜像的过程。包括使用示例说明。
创建镜像
-
首先需要编写Dockerfile,Dockerfile是一种文本文件,包含了构建Docker镜像的指令。
-
打开终端或者命令行,并进入到Dockerfile所在的目录。
-
执行以下命令创建Docker镜像:
$ docker build --tag <your_image_name>:<tag> .
其中:
为你自己的镜像名称,例如myimage -
为你的镜像的版本号,例如v1.0.0 -
等待Docker image构建成功后,可以执行以下命令查看镜像列表:
$ docker image ls
修改镜像
- 进入运行中的Docker容器中:
$ docker exec -it <your_container_id_or_name> /bin/bash
-
在容器内进行修改。
-
退出容器并保存修改:
$ exit
$ docker commit <your_container_id_or_name> <new_image_name>:<tag>
其中:
为你需要修改的容器的ID或者名称 为新的镜像名称,例如newimage -
为新的镜像版本号,例如v1.0.1 -
执行以下命令查看镜像列表:
$ docker image ls
上传镜像
-
在Docker Hub上创建账号(如果已有账号,可以跳过这一步)。
-
登录Docker Hub:
$ docker login
- 输入Docker Hub账号信息,登录成功后可以执行以下命令上传镜像:
$ docker push <your_image_name>:<tag>
其中:
为你自己的镜像名称,例如myimage -
为你的镜像的版本号,例如v1.0.0 -
执行以下命令查看上传的镜像:
$ docker search <your_image_name>
下面通过两个示例进行说明:
示例一
在Ubuntu 18.04上安装Nginx,并上传到Docker Hub。
- 编写Dockerfile,内容如下:
# 使用官方的Ubuntu 18.04作为基础镜像
FROM ubuntu:18.04
# 更新镜像源
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
&& apt-get update \
&& apt-get install -y nginx
# 复制配置文件到容器
COPY nginx.conf /etc/nginx/nginx.conf
# 对外暴露80端口
EXPOSE 80
# 启动Nginx服务
CMD ["nginx", "-g", "daemon off;"]
- 在Dockerfile同级目录下,创建并编辑nginx.conf,内容如下:
worker_processes auto;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
}
- 构建Docker镜像:
$ docker build --tag mynginx:latest .
- 查看Docker镜像列表:
$ docker image ls
- 运行Docker容器:
$ docker run --name mynginx -d -p 80:80 mynginx:latest
- 验证Nginx是否成功安装:
在浏览器中访问 http://localhost
如果看到Welcome to nginx!字样,则其中一段Nginx服务已经启动成功。
- 上传Docker镜像到Docker Hub:
$ docker login
$ docker tag mynginx:latest <your_dockerhub_username>/mynginx:latest
$ docker push <your_dockerhub_username>/mynginx:latest
- 查看Docker Hub上的镜像:
打开浏览器访问 https://hub.docker.com/ ,登录自己的账号,就可以看到上传的mynginx镜像了。
示例二
使用Docker Compose管理Docker镜像
- 编写Dockerfile,内容如下:
# 使用官方的Node.js 12作为基础镜像
FROM node:12
# 创建工作目录并切换到该目录
WORKDIR /app
# 安装项目所需的依赖
COPY package*.json ./
RUN npm install
# 复制项目的所有文件到容器
COPY . .
# 对外暴露3000端口
EXPOSE 3000
# 启动Web服务
CMD [ "npm", "start" ]
- 编写docker-compose.yml,内容如下:
version: '3'
services:
web:
build: .
ports:
- "3000:3000"
- 构建并启动服务:
$ docker-compose up -d
- 查看服务运行状态:
$ docker-compose ps
- 查看Docker镜像列表:
$ docker image ls
-
在浏览器中访问 http://localhost:3000 验证Web服务是否正常运行。
-
上传Docker镜像到Docker Hub:
跟示例一是一样的。
- 查看Docker Hub上的镜像:
跟示例一也是一样的。
这样通过Dockerfile和Docker Compose创建和管理Docker镜像,可以方便地将应用程序打包并部署到多个服务器上,简化了应用程序部署的流程,提高了开发和运维的效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker创建镜像、怎么修改、上传镜像等详细介绍 - Python技术站