Docker 基础进阶

简介: Docker Compose Docker 私有仓库 Dockerfile

Docker Compose

一、安装Docker Compose

#Compose目前已经完全支持Linux、MacOS和Windows,在我们安装Compose之前,需要先安装Docker。下面我们以编译好的二进制包方式安装在Linux系统中。curl-Lhttps://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose#设置文件可执行权限chmod+x/usr/local/bin/docker-compose#查看版本信息docker-compose-version

二、卸载Docker Compose

#二进制包方式安装的,删除二进制文件即可rm/usr/local/bin/docker-compose

三、 使用docker compose编排nginx+springboot项目

  1. 创建docker-compose目录
mkdir~/docker-composecd~/docker-compose
  1. 编写 docker-compose.yml 文件
version: '3'services:
nginx:
image: nginxports:
-80:80links:
-appvolumes:
- ./nginx/conf.d:/etc/nginx/conf.dapp:
image: appexpose:
-"8080"
  1. 创建./nginx/conf.d目录
mkdir-p ./nginx/conf.d
  1. 在./nginx/conf.d目录下 编写itheima.conf文件
server {
listen80;
access_logoff;
location/ {
proxy_passhttp://app:8080;    }
}
  1. 在~/docker-compose 目录下 使用docker-compose 启动容器

docker-compose up

  1. 测试访问

Dockerfile

关键字 作用 备注
FROM 指定父镜像 指定dockerfile基于那个image构建
MAINTAINER 作者信息 用来标明这个dockerfile谁写的
LABEL 标签 用来标明dockerfile的标签 可以使用Label代替Maintainer 最终都是在docker image基本信息中可以查看
RUN 执行命令 执行一段命令 默认是/bin/sh 格式: RUN command 或者 RUN ["command" , "param1","param2"]
CMD 容器启动命令 提供启动容器时候的默认命令 和ENTRYPOINT配合使用.格式 CMD command param1 param2 或者 CMD ["command" , "param1","param2"]
ENTRYPOINT 入口 一般在制作一些执行就关闭的容器中会使用
COPY 复制文件 build的时候复制文件到image中
ADD 添加文件 build的时候添加文件到image中 不仅仅局限于当前build上下文 可以来源于远程服务
ENV 环境变量 指定build时候的环境变量 可以在启动的容器的时候 通过-e覆盖 格式ENV name=value
ARG 构建参数 构建参数 只在构建的时候使用的参数 如果有ENV 那么ENV的相同名字的值始终覆盖arg的参数
VOLUME 定义外部可以挂载的数据卷 指定build的image那些目录可以启动的时候挂载到文件系统中 启动容器的时候使用 -v 绑定 格式 VOLUME ["目录"]
EXPOSE 暴露端口 定义容器运行的时候监听的端口 启动容器的使用-p来绑定暴露端口 格式: EXPOSE 8080 或者 EXPOSE 8080/udp
WORKDIR 工作目录 指定容器内部的工作目录 如果没有创建则自动创建 如果指定/ 使用的是绝对地址 如果不是/开头那么是在上一条workdir的路径的相对路径
USER 指定执行用户 指定build或者启动的时候 用户 在RUN CMD ENTRYPONT执行的时候的用户
HEALTHCHECK 健康检查 指定监测当前容器的健康监测的命令 基本上没用 因为很多时候 应用本身有健康监测机制
ONBUILD 触发器 当存在ONBUILD关键字的镜像作为基础镜像的时候 当执行FROM完成之后 会执行 ONBUILD的命令 但是不影响当前镜像 用处也不怎么大
STOPSIGNAL 发送信号量到宿主机 该STOPSIGNAL指令设置将发送到容器的系统调用信号以退出。
SHELL 指定执行脚本的shell 指定RUN CMD ENTRYPOINT 执行命令的时候 使用的shell

Docker 私有仓库

一、私有仓库搭建

#1、拉取私有仓库镜像dockerpullregistry#2、启动私有仓库容器dockerrun-id--name=registry-p5000:5000registry#3、打开浏览器输入地址http://ip:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功#4、修改daemon.jsonvim/etc/docker/daemon.json#在上述文件中添加一个key,保存退出。此步用于让docker信任私有仓库地址{"insecure-registries":["ip:5000"]} 
#5、重启docker服务systemctlrestartdockerdockerstartregistry

二、将镜像上传至私有仓库

#1、标记镜像为私有仓库的镜像dockertagcentos:7IP:5000/centos:7#2、上传标记的镜像dockerpushIP:5000/centos:7

三、 从私有仓库拉取镜像

#拉取镜像dockerpullip:5000/centos:7
相关文章
|
4月前
|
应用服务中间件 Shell nginx
Docker进阶:深入了解 Dockerfile
Dockerfile 是定义 Docker 镜像内容和构建步骤的文本文件,用于定制化镜像构建,包括基础镜像选择、软件安装和环境变量设置等。其优点在于支持容器化趋势,简化快速部署和交付,保证环境一致性,实现资源隔离和安全性,以及促进持续集成与持续部署。Dockerfile 指令如 FROM(指定基础镜像)、RUN(执行命令)、CMD(容器启动命令)和 EXPOSE(声明端口)。编写规则包括使用大写指令、创建 .dockerignore 文件排除无关文件等。
147 0
|
存储 关系型数据库 MySQL
Docker(五)进阶:Docker卷(volumes)
数据卷:设计用来持久化数据的,它的生命周期独立于容器,不会因为容器被删除后自动删除,并且也不存在垃圾回收这样的机制来处理没有任何容器引用的 数据卷。
805 0
Docker(五)进阶:Docker卷(volumes)
|
4月前
|
Docker 容器
【Docker】掌握 Docker 镜像操作:从基础到进阶
【Docker】掌握 Docker 镜像操作:从基础到进阶
|
4月前
|
关系型数据库 MySQL 应用服务中间件
docker的使用与进阶
docker的使用与进阶
119 0
|
运维 安全 持续交付
利用ansible的角色快速批量一键部署基础docker环境
利用ansible的角色快速批量一键部署基础docker环境
430 0
利用ansible的角色快速批量一键部署基础docker环境
|
存储 Ubuntu Linux
Docker(四)进阶:Docker镜像概述和分层原理
镜像是一个只读模板,带有创建Docker容器的说明。通常,一个镜像基于另一个镜像,并带有一些额外的定制。例如,您可以构建一个基于ubuntu镜像的镜像,但是要安装Apache web服务器和您的应用程序,以及运行应用程序所需的配置细节。
1098 0
Docker(四)进阶:Docker镜像概述和分层原理
|
缓存 网络协议 Linux
Docker(六)进阶:Dockerfile概述与用法(两万字入门到精通)
EXPOSE指令告诉Docker容器在运行时监听指定的网口。可以指定端口侦听的协议类型是TCP还是UDP,如果不指定协议类型,默认为TCP。
373 0
Docker(六)进阶:Dockerfile概述与用法(两万字入门到精通)
|
应用服务中间件 Linux nginx
企业应用交付Docker镜像进阶实战笔记(上)
企业应用交付Docker镜像进阶实战笔记
98 0
企业应用交付Docker镜像进阶实战笔记(上)
|
存储 Ubuntu 关系型数据库
Docker进阶-Dockerfile建立一个自定义的镜像执行自定义进程
Docker进阶-Dockerfile建立一个自定义的镜像执行自定义进程
286 0
Docker进阶-Dockerfile建立一个自定义的镜像执行自定义进程
|
Kubernetes Cloud Native 算法
【Docker】企业进阶实战【Docker-Compose/Stack/Secret/Swarm/Config】
【Docker】企业进阶实战【Docker-Compose/Stack/Secret/Swarm/Config】
186 0
【Docker】企业进阶实战【Docker-Compose/Stack/Secret/Swarm/Config】