使用Docker

275 阅读2分钟

1、Docker架构及组件

docker架构图

Docker Deamon (Docker守护进程): 是一个运行在宿主机的后台进程,可通过Docker客户端与宿主机通信

Client(Docker客户端): docker的用户界面,它可以接收用户命令和配置标识,并与Docker deamon通信

Images(Docker镜像): 镜像只是一个只读模板,包含创建Docker容器的说明

Container(容器): 容器是镜像的运行实例

Registry: 是一个集中存储与分发镜像的服务,构建完Docker镜像后,就可在当前宿主机上运行

2、docker常用命令

www.runoob.com/docker/dock…

// docker 镜像命令
docker search java // 搜索镜像
docker pull java // 下载镜像,从Docker Hub上下载Java镜像
docker pull reg.itmuch.com/java:7 // 从指定的Docker Registry中下载标签为7的Java镜像
docker images // 列出已下载的镜像
docker rim hello-world // 删除指定名称的镜像

// docker 容器命令
docker ps -a // 列出所有容器
docker rm -f eejiojw // 删除容器id为eejiojw
docker run // 新建并启动一个容器
   -d // 后台运行
   -p // 端口映射,4种映射格式
       ip:hostPort:containerPort
       ip::containerPort
       hostPort:containerPort
       containerPort
示例:docker run -d -p 80:80 nginx // 通过宿主机ip:80即可访问nginx

// docker 打包命令
docker build 
    -t 镜像的名字及标签 // 指定镜像名字及标签 通常 name:tag 或者 name 格式
    -f /data/xxx //指定路径

3、使用Dockerfile构建Docker镜像

示例:

image.png

3.1 DockerFile常用指令

www.runoob.com/docker/dock…

image.png

3.2 使用自定义jdk并打包服务

首先拉取centos镜像

docker pull centos

下载jdk

创建DockerFile文件

FROM centos
# 准备用来存放jar包
RUN mkdir -p /usr/local/release 
RUN mkdir -p /usr/java/jdk1.8.0_291
ADD jdk1.8.0_291 /usr/java/jdk1.8.0_291
ENV JAVA_HOME=/usr/java/jdk1.8.0_291
ENV CLASS_PATH=.:JAVA_HOME/lib
ENV PATH=$PATH:$JAVA_HOME/bin

执行创建docker镜像命令

docker build -f /data/dockerFile/jdk/DockerFile -t jdk8:mine

看一看自己创建出来的镜像

image.png

使用自己的jdk镜像包打Java镜像包;创建DockerFile

# 基于哪个镜像
FROM jdk8:mine

ENV JAVA_OPTS="-Xmx256M -Xms256M -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=256M -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled -XX:ErrorFile=./hs_err_pid%p.log -Xloggc:./gc.log -XX:He
apDumpPath=./ -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintClassHistogramBeforeFullGC -XX:+PrintClassHistogramAfterFullGC -XX:+PrintGCApplicationConcurrentTime"

# 复制文件到容器
ADD eureka-server.jar /usr/local/release

WORKDIR /usr/local/release

EXPOSE 2021

ENTRYPOINT java ${JAVA_OPTS} -jar eureka-server.jar

执行镜像打包命令

docker build -t springcloud:eureka-server .

部署镜像

docker run -d -p 8082:2021 springcloud:eureka-server

接下来访问 ip:8082 就可以看到eureka启动页面了

具体执行

image.png