[Docker] Run a command inside Docker container

For example you are working in a backend project, you have setup Dockerfile:

FROM node:10.16.0-stretch

ENV APP_DIR /app

RUN mkdir $APP_DIR

WORKDIR $APP_DIR

COPY package.json yarn.lock $APP_DIR/

RUN yarn install --pure-lockfile

COPY . $APP_DIR

Here is the .env:

BUNDLE_SRC=http://localhost:1337/app.js
HOST_DB=localhost
PORT_WEB=4010
PORT_DB=3020

Because we want to setup Database as well, therefore we need to use Docker compose as well:

// docker-compose.yml

version: ‘2‘
services:
  app:
    build: .
    command: yarn server
    environment:
      - ‘PORT_WEB=8080‘
    expose:
      - ‘${PORT_WEB}‘
    ports:
      - ‘${PORT_WEB}:${PORT_WEB}‘
    volumes:
      - ‘.:/app‘
      - ‘/app/node_modules‘
    depends_on:
      - db

  db:
    image: postgres:9.6.3
    expose:
      - ‘5432‘

For now, we can run the container by using:

docker-compose up

But if we need to install a new package, we can do inside container;

docker exec -it backend_app_1 /bin/bash

It enable us to run command inside docker, so we can do:

npm i --save pg

If we want to exit command mode, we can do:

exit

原文地址:https://www.cnblogs.com/Answer1215/p/11028525.html

时间: 2024-11-01 18:27:55

[Docker] Run a command inside Docker container的相关文章

[Docker] Run, Stop and Remove Docker Containers

In this lesson, we'll find out the basics of running Docker containers. We'll go over how to download images from Docker Hub, what happens when you stop containers, how to restart a container once it's been stopped, and also how to remove containers.

docker run命令详解及示例(二)

docker run Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container 上接博文:docker run命令详解及示例(一) --link --link=[]        Add link to another container 用于连接两个容器. 启动容器1:web docker run --name web -d -p 22 -p 80 -itwebserver:v1

Docker run 命令的使用方法

[编者的话]在Docker中,run应该是用户使用最多的命令了,很多读者反馈不是很明白run命令的用法,而且相关的书籍.中文资料中对run命令的描述也不是非常完整,所以DockerOne组织翻译了Docker官方的文档,以飨读者.注意,本文基于最新的Docker 1.4文档翻译. Docker会在隔离的容器中运行进程.当运行 docker run命令时,Docker会启动一个进程,并为这个进程分配其独占的文件系统.网络资源和以此进程为根进程的进程组.在容器启动时,镜像可能已经定义了要运行的二进制

Docker run执行流详解(以volume,network和libcontainer为线索)

通常我们都习惯了使用Docker run来执行一个Docker容器,那么在我们执行Docker run之后,Docker到底都做了什么工作呢?本文通过追踪Docker run(Docker 1.9版本)的执行流程,借由对volume,network和libcontainer的使用和配置的介绍,对Docker run的原理进行了详细解读. 首先,用户通过Docker client输入docker run来创建被运行一个容器.Docker client主要的工作是通过解析用户所提供的一系列参数后,分

关于对docker run --link的理解

原文:关于对docker run --link的理解 前言 在实践中,自己会遇到2个容器之间互相访问通信的问题,这个时候就用到了docker run --link选项.自己也花了一段时间泡官网研究了--link的用法,把自己对--link的理解分享下.注意!docker官方已不推荐使用docker run --link来链接2个容器互相通信,随后的版本中会删除--link,但了解其原理,对如何使2个容器之间互相通信还是有帮助的. 1. docker run --link的作用 docker ru

理解Docker(1):Docker 安装和基础用法

1. 安装 1.1 在 Ubuntu 14.04 上安装 Docker 前提要求: 内核版本必须是3.10或者以上 依次执行下面的步骤: sudo apt-get update sudo apt-get install apt-transport-https ca-certificates sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF7

Docker | 第三章:Docker常用命令

前言 上一章节,简单介绍了在CentOS下的Docker的安装过程,以及运行了一个官方提供的Hello,World镜像运行了第一个Docker.就像上一章中,验证Docker是否安装成功,我们执行的是docker info命令.运行镜像时,执行的是docker run imagesName.所以学习一个工具,主要还是学习如何利用本身工具提供的一些命令进行相应的操作.所以本章节,主要来介绍下Docker的常用命令. Docker命令清单 镜像常用命令 容器常用命令 其他常用命令 总结 最后 参考资

理解Docker(5):Docker 网络

本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 1. Docker 网络概况 用一张图来说明 Docker 网络的基本概况: 2. 四种单节点网络模式 2.1 bridge 模式 Docker 容器默认使用 bridge 模式的网络.其特点

理解Docker(8):Docker 存储之卷(Volume)

(1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 (6)若干企业生产环境中的容器网络方案 (7)Docker 存储 - AUFS (8)Docker 存储 - Volume 1. Docker volume 的几种形态 有状态容器都有数据持久化需求.前一篇文章中提到过,Docker 采