1. 程式人生 > >Docker Run 命令打包H5及其他後臺應用

Docker Run 命令打包H5及其他後臺應用

一、簡單的run命令介紹

     Docker run 命令用來建立一個新的容器並執行,相當於 docker create和docker start的組合。

用 docker run -help可以顯示命令的使用說明。

  docker run --help

  Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

  Run a command in a new container

  Options:
  --add-host value Add a custom host-to-IP mapping (host:ip) (default [])
  -a, --attach value Attach to STDIN, STDOUT or STDERR (default [])
  --blkio-weight value Block IO (relative weight), between 10 and 1000
  --blkio-weight-device value Block IO weight (relative device weight) (default [])
  --cap-add value Add Linux capabilities (default [])
  --cap-drop value Drop Linux capabilities (default [])
  --cgroup-parent string Optional parent cgroup for the container
  --cidfile string Write the container ID to the file
  --cpu-percent int CPU percent (Windows only)
  --cpu-period int Limit CPU CFS (Completely Fair Scheduler) period
  --cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota
  -c, --cpu-shares int CPU shares (relative weight)
  --cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)
  --cpuset-mems string MEMs in which to allow execution (0-3, 0,1)
  -d, --detach Run container in background and print container ID
  --detach-keys string Override the key sequence for detaching a container
  --device value Add a host device to the container (default [])
  --device-read-bps value Limit read rate (bytes per second) from a device (default [])
  --device-read-iops value Limit read rate (IO per second) from a device (default [])  
  --device-write-bps value Limit write rate (bytes per second) to a device (default [])
  --device-write-iops value Limit write rate (IO per second) to a device (default [])
  --disable-content-trust Skip image verification (default true)
  --dns value Set custom DNS servers (default [])
  --dns-opt value Set DNS options (default [])
  --dns-search value Set custom DNS search domains (default [])
  --entrypoint string Overwrite the default ENTRYPOINT of the image
  -e, --env value Set environment variables (default [])
  --env-file value Read in a file of environment variables (default [])
  --expose value Expose a port or a range of ports (default [])
  --group-add value Add additional groups to join (default [])
  --health-cmd string Command to run to check health
  --health-interval duration Time between running the check (default 0s)
  --health-retries int Consecutive failures needed to report unhealthy
  --health-timeout duration Maximum time to allow one check to run (default 0s)
  --help Print usage
  -h, --hostname string Container host name
  -i, --interactive Keep STDIN open even if not attached
  --io-maxbandwidth string Maximum IO bandwidth limit for the system drive (Windows only)
  --io-maxiops uint Maximum IOps limit for the system drive (Windows only)
  --ip string Container IPv4 address (e.g. 172.30.100.104)
  --ip6 string Container IPv6 address (e.g. 2001:db8::33)
  --ipc string IPC namespace to use
  --isolation string Container isolation technology
  --kernel-memory string Kernel memory limit
  -l, --label value Set meta data on a container (default [])
  --label-file value Read in a line delimited file of labels (default [])
  --link value Add link to another container (default [])
  --link-local-ip value Container IPv4/IPv6 link-local addresses (default [])
  --log-driver string Logging driver for the container
  --log-opt value Log driver options (default [])
  --mac-address string Container MAC address (e.g. 92:d0:c6:0a:29:33)
  -m, --memory string Memory limit
  --memory-reservation string Memory soft limit
  --memory-swap string Swap limit equal to memory plus swap: '-1' to enable unlimited swap
  --memory-swappiness int Tune container memory swappiness (0 to 100) (default -1)
  --name string Assign a name to the container
  --network string Connect a container to a network (default "default")
  --network-alias value Add network-scoped alias for the container (default [])
  --no-healthcheck Disable any container-specified HEALTHCHECK
  --oom-kill-disable Disable OOM Killer
  --oom-score-adj int Tune host's OOM preferences (-1000 to 1000)
  --pid string PID namespace to use
  --pids-limit int Tune container pids limit (set -1 for unlimited)
  --privileged Give extended privileges to this container
  -p, --publish value Publish a container's port(s) to the host (default [])
  -P, --publish-all Publish all exposed ports to random ports
  --read-only Mount the container's root filesystem as read only
  --restart string Restart policy to apply when a container exits (default "no")
  --rm Automatically remove the container when it exits
  --runtime string Runtime to use for this container
  --security-opt value Security Options (default [])
  --shm-size string Size of /dev/shm, default value is 64MB
  --sig-proxy Proxy received signals to the process (default true)
  --stop-signal string Signal to stop a container, SIGTERM by default (default "SIGTERM")
  --storage-opt value Storage driver options for the container (default [])
  --sysctl value Sysctl options (default map[])
  --tmpfs value Mount a tmpfs directory (default [])
  -t, --tty Allocate a pseudo-TTY
  --ulimit value Ulimit options (default [])
  -u, --user string Username or UID (format: <name|uid>[:<group|gid>])
  --userns string User namespace to use
  --uts string UTS namespace to use
  -v, --volume value Bind mount a volume (default [])
  --volume-driver string Optional volume driver for the container
  --volumes-from value Mount volumes from the specified container(s) (default [])
  -w, --workdir string Working directory inside the container

        舉個栗子:

    docker run -it registry.houbank.net/devi/node:8.11.3  

    執行容器 並不退出,進入容器

二、使用Run命令構建

  第一步:構建一個shell指令碼   .node的指令碼

# .node

node() {

docker run --rm \    -- rm 刪除本地的容器檔案系統
-v $(pwd):/project \  -- 磁碟外鏈一個檔案,將需要打包的專案連結到Docker容器中(個人理解)

-w  /project \      -- 定義工作目錄 (如果瞭解映象的工作目錄則不需要)
registry.houbank.net/devi/node:8.11.3  [OPTIONS ''npm''] \  --映象倉庫的地址  ,新增npm是因為開始沒有npm命令
$*  -- 引數
}

   第二步 通過scurce .node 臨時設定環境變數(用於使用指令碼中的npm 函式,藉此使用Docker中的npm 及相關node版本)

   第三步 通過jenkins 執行

            scurce ~/.node

             npm install 

             npm run test

    第四步 重啟nginx即可

 、使用Run命令構建其他專案

        構建其他專案也是同樣的方式,但是啟動時可能有一定差距,需具體分析相關情況