docker官方文档解读

发布时间 2023-04-18 22:34:56作者: zhenjingcool

官网:https://docs.docker.com/get-started/overview/

1 Docker overview

2 开始

2.1 创建镜像并启动

这里我们以一个nodejs用于为例,说明容器化应用程序过程

首先克隆这个应用程序源码

 git clone https://github.com/docker/getting-started.git 

然后,创建一个Dockerfile文件

[root@localhost app]# pwd
/data/srcs/getting-started/app
[root@localhost app]# vi Dockerfile

Dockerfile内容为

# syntax=docker/dockerfile:1

FROM node:18-alpine
WORKDIR /app
COPY . .
RUN yarn install --production --registry=https://registry.npm.taobao.org
# 如果yarn install命令执行失败,可以改为npm install试一下 CMD ["node", "src/index.js"] EXPOSE 3000

构建镜像

 docker build -t getting-started . 

其中-t参数为镜像打一个tag,.参数表示在当前路径下查找Dockerfile文件

启动镜像

 docker run -dp 3000:3000 getting-started 

然后我们访问宿主机的3000端口,可以看到应用程序部署成功

有时候我们重新生成了镜像,需要重新部署镜像

[root@localhost app]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                       NAMES
c77251691610   05a7b6b9d2f4   "docker-entrypoint.s…"   37 minutes ago   Up 37 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   ecstatic_cartwright
[root@localhost app]# docker stop c77251691610
c77251691610
[root@localhost app]# docker rm c77251691610
c77251691610
[root@localhost app]# docker run -dp 3000:3000 getting-started
89ed2658b10f65f80d616fe571de53e2fae9113ff05da125eec9371b19f82eef
[root@localhost app]#

2.2 共享镜像

共享镜像的意思是,我们将生成的镜像push到远程仓库。

我们以推送到docker hub为例

首先,需要在docker hub注册账号。

然后,登陆docker hub

 docker login -u zhenjingcool 

然后,执行docker tag命令

 docker tag getting-started zhenjingcool/getting-started 

然后执行docker push命令

 docker push zhenjingcool/getting-started 

然后,我们会发现仓库中多了一个镜像

 接下来,我们在play with docker中运行刚才上传的镜像

首先登陆play with docker,然后点击"ADD NEW INSTANCE",然后执行 docker run -dp 3000:3000 zhenjingcool/getting-started ,如下图所示

然后,我们就可以看到我们运行的镜像应用了