docker study笔记

93 阅读1分钟

references

www.ruanyifeng.com/blog/2018/0…

www.ruanyifeng.com/blog/2018/0…

安装

Docker Root Dir: /var/lib/docker

命令

docker container run hello-world
docker image ls
# 列出本机正在运行的容器
$ docker container ls

# 列出本机所有容器,包括终止运行的容器
$ docker container ls --all

dockerfile

FROM node:8.4  
COPY . /app
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 3000  #程序运行后会开启3000端口
CMD node demos/01.js 

 RUN命令与CMD命令的区别在哪里?简单说,RUN命令在 image 文件的构建阶段执行,执行结果都会打包进入 image 文件;CMD命令则是在容器启动后执行。另外,一个 Dockerfile 可以包含多个RUN命令,但是只能有一个CMD命令。 //本例中RUN npm install 会将node_modules打到image中

创建Dockerfile

FROM node:8.4  
COPY . /app
WORKDIR /app
RUN ["npm", "install"]
EXPOSE 3000/tcp

创建image


//基于当前目录的Dockerfile 创建image
$ docker image build -t koa-demo .
# 或者
$ docker image build -t koa-demo:0.0.1 .
# 终止容器
$ docker container kill

用image 来创建容器

# 每次run 都会创建新的容器,如果不删除会一直在那里
$ docker container run -p 8000:3000 -it koa-demo /bin/bash
# 或者
$ docker container run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash

# 在本机的另一个终端窗口,查出容器的 ID
$ docker container ls

# 停止指定的容器运行
$ docker container kill [containerID]
$ docker container start [containerID]

# 查出容器的 ID
$ docker container ls --all

# 删除指定的容器文件
$ docker container rm [containerID]

-p参数:容器的 3000 端口映射到本机的 8000 端口。

-it参数:容器的 Shell 映射到当前的

Shell,然后你在本机窗口输入的命令,就会传入容器。

koa-demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。

/bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell

路径映射

Docker 提供数据挂载的功能,即可以指定容器内的某些路径映射到宿主机器上,修改命令,添加 -v 参数,启动新的容器

docker run -d -p 80:80  -v ~/docker-demo/nginx-htmls:/usr/share/nginx/html/ --restart=always  nginx:latest

docker 在前端中的使用