docker 入门 命令

docker 命令

docker images 镜像列表
docker ps 服务列表

docker 隐藏打包文件
.dockerignore

.git
node_modules
npm-debug.log

Dockerfile

FROM node:10.16.0-alpine
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 80
ENTRYPOINT [ "npm",  "run", "start" ]

打包当前目录

docker image build -t node-app .

生成容器 docker container run

docker container run -p 114:8080 -it --name containerName -v /www/wwwroot/node.test.com:/app -d --privileged=true --restart=always node-app

--privileged 开启root特权
--restart=always 自动重启 如果创建是没有使用 可以更新容器配置 命令: docker container update --restart=always 容器名字

目录映射

-v /Users/root/webProject/test/App:/app

容器列表 docker container ls

docker ls

停止 / 开始 指定的容器运行

docker start xxx
docker kill xxx
docker stop xxx
docker restart xxxx
docker logs
docker logs containerName -f 查看实时记录
docker exec
docker exec -it < name > sh
docker stop $(docker ps -a -q)  停止所有
docker rm $(docker ps -a -q)  删除所有

容器操作

docker export $container_id > 容器快照名 容器导出
cat centos.tar | docker import - my/centos:v888 容器导入

docker rm [container_id]
docker rm -f [container_id]  删除运行状态下 加 -f 参数

docker load 镜像载入
docker save 镜像载出

docker import
docker export

镜像保存/载入:docker load/docker save;将一个镜像导出为文件,再使用docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。

容器导入/导出:docker import/docker export;将一个容器导出为文件,再使用docker import命令将容器导入成为一个新的镜像,但是相比docker save命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。

镜像删除

docker rmi <image id>

想要删除untagged images,也就是那些id为<None>的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

要删除全部image的话
docker rmi $(docker images -q)