docker启动、关闭、查看状态
systemctl start docker
systemctl stop docker
systemctl status docker
查看版本、信息
docker version
docker info
操作镜像
列出本机所有镜像 docker image ls
删除image文件 docker image rm [imageName]
从远程仓库拉取镜像 docker image pull [imageName]
导入镜像 docker load -i [文件名(如ubuntu.tar)] { -i:从tar文件读取 -q:禁止读入输出}
容器操作
生成容器
#-p参数:容器的 3000 端口映射到本机的 8000 端口。
#-it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
#koa-demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
#/bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。
$ docker container run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash
停止容器 docker container stop [containerID]
启动容器 docker container start [containerID]
查看 docker 容器的输出 docker container logs [containerID]
查看容器元信息 docker inspect [containerID]
进入一个正在运行的 docker 容器 docker container exec -it [containerID]
从正在运行的 Docker 容器里面,将文件拷贝到本机。 docker container cp
[containID]:[目标文件] [本机目录]
终止容器 docker container kill [containerID]
列出本机所有容器,包括终止运行的容器 docker container ls --all
删除已经终止的容器 docker container rm [containerID]
退出容器 exit
导出容器快照 docker export [containerID] > [文件名(如ubuntu.tar)]
导入容器快照 docker import [文件名(如ubuntu.tar)] [镜像名(如test/ubuntu:v1.0)]
制作docker容器
- 编写dockerfile文件
#首先,在项目的根目录下,新建一个文本文件`.dockerignore`,写入需要忽略的内容
.git
node_modules
npm-debug.log
#上面代码表示,这三个路径要排除,不要打包进入 image 文件。如果你没有路径要排除,这个文件可以不新建。
#在项目的根目录下,新建一个文本文件 Dockerfile,写入下面的内容
FROM node:8.4
COPY . /app
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 3000
CMD node demos/01.js
#1、 FROM node:8.4:该 image 文件继承官方的 node image,冒号表示标签,这里标签是8.4,即8.4版本的 node。
#2、 COPY . /app:将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录。
#3、 WORKDIR /app:指定接下来的工作路径为/app。
#4、 RUN npm install:在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包进入 image 文件。
#5、 EXPOSE 3000:将容器 3000 端口暴露出来, 允许外部连接这个端口。
#6、CMD命令则是在容器启动后执行。指定了CMD命令以后,docker container run命令就不能附加命令了(比如前面的/bin/bash),否则它会覆盖CMD命令。
#另外,一个 Dockerfile 可以包含多个RUN命令,但是只能有一个CMD命令。
- 创建image文件
$ docker image build -t koa-demo:0.0.1 .
#上面代码中,-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是latest。最后的那个点表示 Dockerfile 文件所在的路径,上例是当前路径,所以是一个点。
- 发布image文件
#首先登陆docker
$ docker login
#为本地的 image 标注用户名和版本
$ docker image tag [imageName] [username]/[repository]:[tag]
#发布 image 文件
$ docker image push [username]/[repository]:[tag]
网友评论