Docker使用

写作前面

主题是Containerize an application,这里是链接

需要准备

  1. 安装好Docker
  2. 安装好Git
  3. 需要文本编辑器

获取项目

  1. 使用git克隆项目到本地
    git clone https://github.com/docker/getting-started-app.git
    
  2. 克隆后文件如下所示
    ├── getting-started-app/
    │ ├── package.json
    │ ├── README.md
    │ ├── spec/
    │ ├── src/
    │ └── yarn.lock
    

构建app项目的image

  1. 进入项目根目录
    cd /path/to/getting-started-app
    
  2. 创建Dockerfile文件
    touch Dockerfile
    
  3. 使用文本编辑器向Dockerfile输入以下内容
    # syntax=docker/dockerfile:1
    
    FROM node:18-alpine
    WORKDIR /app
    COPY . .
    RUN yarn install --production
    CMD ["node", "src/index.js"]
    EXPOSE 3000
    
  4. 构建image
    docker build -t getting-started .
    

docker build命令使用Dockerfile去构建一个新的镜像。根据Dockerfile的内容,FROM node:18-alpine告诉docker是基于node:18-alpine构建新image,所以需要下载。WORKDIR /app设置运行后的工作目录。COPY . .是复制功能,表示将当前目录的内容复制到/app下,第一个参数是实际的路径,第二个参数是相对WORKDIR 的路径。RUN yarn install --production是安装项目依赖。CMD ["node", "src/index.js"]是启动容器时才会执行的命令。EXPOSE 3000指定当前项目监听的端口。
docker build中-t参数是image的tag名字, 后面那个点是告诉docker从当前项目寻找Dockerfile文件

启动一个app容器

  1. 执行以下命令
docker run -dp 127.0.0.1:3000:3000 getting-started

-d--detach的缩写,表示使容器在后台运行。-p--publish的缩写,创建一个端口映射,形式是HOST:CONTAINER,上面是将容器的3000端口映射到主机的127.0.0.1:3000。没有端口映射,不能从主机中访问该应用
2. 访问 http://localhost:3000,将会看到下面的图像
Docker使用_第1张图片

列出当前运行的容器

执行以下命令,会看到类似的内容

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
df784548666d        getting-started     "docker-entrypoint.s…"   2 minutes ago       Up 2 minutes        127.0.0.1:3000->3000/tcp   priceless_mcclintock

你可能感兴趣的:(docker,容器,运维)