项目中用到docker, 所以现学现卖了,记录一下docker 中一些常用的命令
1. 首先我们要写一个Dockerfile, example 的在下面,(安装nodejs 的service 为例)具体可以参考
https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
FROM node:boron
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
# set environment variable
ENV ES_HOST=https://127.0.0.1:9200
# replace this with your application's default port
EXPOSE 8080
CMD [ "npm", "start" ]
2. build 自己的images, 在Dockerfile 目录下面run
docker build -t node-web-app .
run 下面的命令我们可以将查询所有的image
REPOSITORY TAG IMAGE ID CREATED SIZE
node-web-app latest d287f3defdd2 About a minute ago 727.6 MB
node 4.5.0 10a26800d95a 3 months ago 648.5 MB
hello-world latest c54a2cc56cbb 5 months ago 1.848 kB
3. run 你的app, 我这边的是一个webservice
docker run -p 8080:8080 -d --name elasticQuery node-web-app
run docker ps -a 查看一下是否OK
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a74f053d5c0 node-web-app "npm start" 7 seconds ago Up 6 seconds 0.0.0.0:8080->8080/tcp elasticQuery
d60477b114f6 hello-world "/hello" 6 hours ago Exited (0) 6 hours ago clever_wescoff
4. delete/stop/start
查询所以docker container docker ps -a, 例如
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d60477b114f6 hello-world "/hello" 5 hours ago Exited (0) 5 hours ago clever_wescoff
这个明显表面hello-world 的app 处在exited 的状态,如果是UP的状态。我们可以
docker stop clever_wescoff (name)
我们还可以delete 这个container: docker rm d60477b114f6
我们还可以delete 我们的images, 首先查询一下images, docker images:
REPOSITORY TAG IMAGE ID CREATED SIZE
node 4.5.0 10a26800d95a 3 months ago 648.5 MB
hello-world latest c54a2cc56cbb 5 months ago 1.848 kB
然后detele image: docker rmi c54a2cc56cbb