容器基本操作
docker 中的容器就是一个轻量级的虚拟机,是镜像运行起来的一个状态,本文就先来看看容器的基本操作。
镜像就像是一个安装程序,而容器则是程序运行时的一个状态。
查看容器
创建容器
启动关闭容器
删除容器
查看容器信息、日记
容器导入导出
docker export -o image-test.tar 1ffcd3e4a201
镜像的基本操作
镜像是容器运行的基础,容器是镜像运行后的形态。镜像是一个包含程序运行必要以来环境和代码的只读文件,它采用分层的文件系统,将每一层的改变以读写层的形式增加到原来的只读文件上。
查看所有镜像
TAG: TAG用于区分同一仓库中的不同镜像,默认为latest。
IMAGE ID: IMAGE ID是镜像的一个唯一标识符。
CREATED: CREATED表示镜像的创建时间。
SIZE: SIZE表示镜像的大小。
REPOSITORY:仓库名称,仓库一般用来存放同一类型的镜像。仓库的名称由其创建者指定。如果没有指定则为
<none>
。
搜索镜像
下载镜像
版本可以在Docker hub上查看
删除镜像
Dockerfile
Dockerfile是用来构建docker镜像的构建文件。
其实Dockerfile就是一个普通的文本文件,其中包含了一条条的指令,每一条指令都会构建一层。
dockerfile指令
FROM nginx 表示该镜像的构建,以已有的 nginx 镜像为基础,在该镜像的基础上构建。
MAINTAINER 指令用来声明创建镜像的作者信息以及邮箱信息,这个命令不是必须的。
RUN 指令用来修改镜像,算是使用比较频繁的一个指令了,该指令可以用来安装程序、安装库以及配置应用程序等,一个 RUN 指令执行会在当前镜像的基础上创建一个新的镜像层,接下来的指令将在这个新的镜像层上执行,RUN 语句有两种不同的形式:shell 格式和 exec 格式。本案例采用的 shell 格式,shell 格式就像 linux 命令一样,exec 格式则是一个 JSON 数组,将命令放到数组中即可。在使用 RUN 命令时,适当的时候可以将多个 RUN 命令合并成一个,这样可以避免在创建镜像时创建过多的层。
COPY 语句则是将镜像上下文中的
hello.html
文件拷贝到镜像中。
命令解释:
-t 参数用来指定镜像的命名空间,仓库名以及 TAG 等信息。
最后面的
.
是指镜像构建上下文。
本地打包docker镜像
下载安装Docker Desktop,配置完成后即可在windows CMD上操作docker命令
编写一个简单的springboot项目,提供一个helloworld接口
使用maven插件打包--install--,在target包下可以看得到生成的jar包。
编写Dockerfile文件
将jar包和dockerfile文件置于同一目录下执行命令,构建镜像:
查看镜像:docker images
创建并启动容器:docker run -d -p 8080:8080 6e7772b68332
docker desktop上可以看到容器正在运行:
docker数据卷操作
一般情况下,当我们需要将数据从宿主机拷贝到容器中使用的都是docker的拷贝命令。数据卷可以避免这种麻烦的操作。
数据卷可以实现容器和宿主机之间的数据共享,简单来说数据卷就是在宿主机和容器之间搭建的一个映射的工作区,两者可以同步修改。
这样便是将宿主机中的 /Users/sang/blog/docker/docker/
目录挂载到容器的 /usr/share/nginx/html/
目录下。接下来读者只需要在 /Users/sang/blog/docker/docker/
目录下添加 html 文件,或者修改 html 文件,都能在 nginx 访问中立马看到效果。
查看所有的数据卷:
查看数据卷详情
删除数据卷