
- 一、docker概念与应用
- 二、docker安装指令
- 三、docker镜像指令
- 四、docker容器指令
- 五、dockerfile构建镜像
- 六、docker部署实例
-
笼统概念:
Docker是一个开源的应用容器引擎,开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,发布到任何流行的Linux或Windows*** 作系统的机器上,也可以实现虚拟化。 -
举个例子,比如说我们需要在linux
/window部署 一个springboot项目。以往我们需要先部署环境,才能进行项目启动。一旦服务器变换,则需要重新安装环境,较为繁琐。而docker支持将 jar包以及相关依赖环境打成镜像,这样子便可以直接在装有docker的环境上运行(linux/windows),省去了环境配置这一环节,节约了运维成本。同时docker仓库提供了较多的基础镜像,便于集成。 -
docker三要素:镜像、容器、仓库。举个例子,仓库就是我们手机商城,镜像就是商城里面的软件,而容器就是我们的手机,也就是提供镜像运行的地方。一般我们都是先登录仓库(私服仓库,不登陆默认
https://hub.docker.com),然后拉取镜像,最后运行。注:每次运行镜像,都会默认生成一个容器。如果我们想要删除删除镜像,需要先删除容器。
- 安装:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 启动:systemctl start docker
- 重启:systemctl restart docker
- 停止:systemctl stop docker
- 开机启动:systemctl enable docker
- 查看docker概要信息:docker info
- 查看docker帮助文档:docker ‐‐help
- 登录仓库:docker login
- 查看仓库镜像:docker search 镜像名
- 下载仓库镜像:docker pull 镜像名
- 查看下载的镜像:docker images
- 查看下载的指定镜像:docker images 镜像名
- 给下载的镜像打标签:docker tag 镜像id 镜像名:版本
- 推送镜像:docker push 镜像名:版本
- 删除镜像(必须先删除镜像容器):docker rmi 镜像名
- 导出镜像到当前目录:docker save 镜像id>镜像名称:版本
- 导入镜像:docker load < 镜像名称:版本
-
启动镜像(自动生成容器):docker run [options] 镜像名 [command]
[options]: -i # 启动一个可交互的容器,并且持续打开标准输入 -t # 表示使用终端关联到容器的标准输入输出上 -d # 后台运行 --rm=true # 退出后删除容器 --name=容器名 # 给容器命名 -p 主机端口:容器端口 # 映射端口 -P # 大写P,暴露容器所有端口 -v 主机地址:容器地址 # 挂载,映射端口文件夹 -e 属性名=属性值 # 配置环境变量 [command]: /bin/bash # 控制台 -
启动容器:docker start 容器id
-
关闭容器:docker stop/kill 容器id
-
暂停容器:docker pause/unpause 容器id
-
重启容器:docker restart 容器id
-
查看运行中的容器:docker ps
-
查看所有的容器:docker ps -a
-
容器信息:docker inspect 容器id
-
查看容器中的进程信息:docker top 容器id
-
查看容器日志:docker logs [options] 容器id
[options]: --since 30m # 最近30分钟 -f # 动态打印 -
删除容器:docker rm 容器id
-
进入容器(必须是可交互的容器):docker exec -ti 容器id bash
-
退出容器:exit
-
进入容器正在执行的终端:docker attach 容器id
-
在运行的容器中执行命令:docker exec 容器名 命令(如id add)
-
从容器内拷贝文件到主机上:docker cp 容器id:容器内路径 主机文件路径
-
容器打包成镜像:docker commit [options] 容器id 名称:版本号
[options]: -m # 描述 -a # 作者
- 命令介绍
| 命令 | 效果 |
|---|---|
| FROM | 基于镜像 |
| MAINTAINER | 镜像作者+邮箱 |
| RUN | 镜像构建的时候需要运行的命令 |
| ADD | 将本地文件拷贝到容器中(tar自动解压) |
| WORKDIR | 镜像工作目录(进入容器时的目录) |
| VOLUME | 挂载/持久化的目录 |
| EXPOSE | 暴露端口配置 |
| CMD/ENTRYPOINT | 指定这个容器启动时要运行的命令(CMD替代先前命令,ENTRYPOINT在先前命令后追加) |
| COPY | 类似于ADD,将文件拷贝到镜像中(不能自动解压) |
| ENV | 构建时设置环境变量(printenv:打印环境变量;cat /etc/redhat-release:linux版本;rpm -qa bind:bind版本) |
| USER | 指定容器的子进程是哪个用户(pid=1 |
- 简单将springboot打包成镜像启动
#继承jdk8
FROM java:8
#作者
MAINTAINER zzk
#指定临时文件夹,效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。该步骤是可选的,如果涉及到文件系统的应用就很有必要了。
#/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
VOLUME /tmp
#将jar包添加到容器并且改名字为zzk.jar
ADD docker.jar zzk.jar
#运行jar包
RUN bash -c 'touch /zzk.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/zzk.jar"]
六、docker部署实例
https://blog.csdn.net/weixin_40496191/article/details/122714245
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)