一.简介
容器就是将程序隔离并且打包的一个过程,
其实有点类似虚拟机,把一个应用服务放在一个独立的环境里来运行
二.常用命令
1.docker pull
拉取或者更新指定镜像
2.docker push
推送镜像到远程仓库
3.docker rm
删除容器
4.docker rmi
删除镜像
5.docker ps
显示当前正在运行的容器。
-a:未运行得也显示
6.docker image
查看本地所有的镜像
7.docker run +容器名称
将镜像放入容器并启动这个容器
docker start + 容器ID
重新启动已经存在的镜像
-p:可以做端口映射,将镜像本身的端口映射到本地的某个端口上
docker run -p 8080:80 -d nginx
就是在本地8080端口开启了一个nginx服务
-d就是允许程序直接返回
8.docker commit
在docker容器内部做的改动都无法保存,如果想要保存就需要提交,但是提交完以后就会产生一个新的镜像
9.docker build
创建一个image
三.dockerfile
通过文件自创镜像
dockerfile由一条条指令组成,可以根据指令定制image。
常用指令:
1.FROM
指定基础镜像
2.RUN
运行被基础镜像支持的命令
3.ADD
添加文件
4.COPY
拷贝文件
5.CMD
执行命令
6.EXPOSE
暴露端口
7.WORKDIR
指定路径
8.MAINTAINER
维护者
9.ENV
设定环境变量
10.ENTRYPOINT
容器入口
11.USER
指定用户
12.VOLUMN
mount point
四.dockercompose
compose是一个管理多容器的工具。
一般通过以下几个步骤:
使用 Dockerfile 定义应用程序的环境。
使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
最后,执行 docker-compose up 命令来启动并运行整个应用程序。
yml:
在这里符号.一般表示当前目录,也就是:该 web 服务使用从 Dockerfile 当前目录中构建的镜像。
而redis则是使用 Docker Hub 的公共 Redis 映像。
# yaml 配置
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
bulild也可以指定为构建镜像上下文路径:
例如 webapp 服务,指定为从上下文路径 ./dir/Dockerfile 所构建的镜像:这个就是指利用dir下面的dockerfile来构建
version: "3.7"
services:
webapp:
build: ./dir
depends_on表示依赖关系,可以控制服务的顺序,在这里会先启动db,再启动redis,最后启动web,但是注意:它不会等到完全启动以后再启动web,如果想要等到完全启动,才启动web,可以使用一个工具,wait-up来解决。
version: "3.7"
services:
web:
build: .
depends_on:
- db
- redis
redis:
image: redis
db:
image: postgres
.掌握要
1.dockerfile中COPY和ADD的区别
COPY的SRC只能是本地文件,
而ADD可以从路径进行下载,还可以将一个压缩文件解压,
但是除非需要解压的情况,否则一般推荐COPY。
2.docker和虚拟机的区别
docker和虚拟机都能实现一次构建到处运行的效果,但是docker主要面向应用程序或者单个服务,而虚拟机则面向多个进程。
并且docker不需要引导自己的操作系统内核,所以创建容器更快,开销更小,因此是更轻量级的解决方案。
3.什么是docker
docker是一种容器化解决方案,可以将应用程序和依赖都打包在一起,使其到处都能使用。
4.dockers镜像
dockers镜像是容器的源代码,可以用来创建容器。
5.docker容器的几种状态
运行,暂停,重新启动,退出
6.什么是Docker Swarm
7.如何在生产中监控Docker
网友评论