镜像指令
docker pull centos:latest # 从docker.io中下载centos镜像到本地
docker images # 查看已下载的镜像
docker rm image_id # 删除镜像,指定镜像id
# 删除所有镜像
# none 默认为 docker.io
docker rmi $(docker images | grep none | awk '{print $3}' | sort -r)
# 连接进行进入命令行模式,exit命令退出。
docker run -t -i nginx:latest /bin/bash
容器指令
docker run -itd --name my-nginx2 nginx # 通过nginx镜像,【创建】容器名为 my-nginx2 的容器
docker start my-nginx --restart=always # 【启动策略】一个已经存在的容器启动添加策略
# no - 容器不重启
# on-failure - 容器推出状态非0时重启
# always - 始终重启
docker start my-nginx # 【启动】一个已经存在的容器
docker restart my-nginx # 【重启】容器
docker stop my-nginx # 【停止运行】一个容器
docker kill my-nginx # 【杀死】一个运行中的容器
docker logs my-nginx # 【查看日志】
docker rename my-nginx new-nginx # 【重命名】容器
docker rm new-nginx # 【删除】容器
进入容器
#进入容器
docker exec -it [containerID/Names] /bin/bash
#文件拷贝
#从主机复制到容器
sudo docker cp host_path containerID:container_path
#从容器复制到主机
sudo docker cp containerID:container_path host_path
镜像制作
通过容器创建镜像
docker commit -m="First Docker" -a="wcjiang" a6b0a6cfdacf wcjiang/nginx:v1.2.1
上面命令参数说明:
-m提交的描述信息-a指定镜像作者a6b0a6cfdacf容器idwcjiang/nginx:v1.2.1创建的目标镜像名
通过Dockerfile创建镜像
假设创建一个 node.js 镜像,首先在 node.js 项目根目录创建文件。
touch Dockerfile .dockerignore
.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
FROM node:8.4:该image文件继承官方的node image,冒号表示标签,这里标签是8.4,即8.4版本的node。COPY . /app:将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入image文件的/app目录。WORKDIR /app:指定接下来的工作路径为/app。RUN npm install:在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包进入image文件。EXPOSE 3000:将容器3000端口暴露出来, 允许外部连接这个端口。
创建 image 文件
有了 Dockerfile 文件以后,就可以使用 docker image build 命令创建 image 文件了。
$ docker image build -t koa-demo .
# 或者
$ docker image build -t koa-demo:0.0.1 .
上面命令,-t 参数用来指定 image 文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是 latest。注意后面有个 .,表示 Dockerfile 文件所在的路径为当前路径
本文详细介绍了Docker的基本操作,包括镜像的拉取、查看、删除,容器的创建、启动、重启、停止及日志查看等。同时,深入讲解了如何通过容器或Dockerfile创建镜像,并提供了具体的命令示例。
1698

被折叠的 条评论
为什么被折叠?



