Spring boot docker基础一

基本概念

  1. Docker 镜像(Image),就相当于是一个 root 文件系统。
  2. 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例
    一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  3. 仓库 镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务

基本操作

1. 获取镜像

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
##例子
docker pull ubuntu:18.04

2. 列出镜像

$ docker image ls

REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
redis                latest              5f515359c7f8        5 days ago          183 MB
nginx                latest              05a60462f8ba        5 days ago          181 MB
mongo                3.2                 fe9198c04d62        5 days ago          342 MB
<none>               <none>              00285df0df87        5 days ago          342 MB
ubuntu               18.04               f753707788c5        4 weeks ago         127 MB
ubuntu               latest              f753707788c5        4 weeks ago         127 MB

3. 删除本地镜像

docker image rm [选项] <镜像1> [<镜像2> ...]
##例子
docker image rm 501

4. 使用 Dockerfile 定制镜像(spring boot 例子)

# 继承于上层镜像 
FROM openjdk:8-jdk-alpine

# 作者
MAINTAINER chengJun "cheng.jun@microcardio.com"
# 执行命令
RUN rm -rf /opt/running/mp*
# 将build/libs下的jar包拷贝到容器中的/opt/running/目录
COPY build/libs/*.jar /opt/running/mp.jar
# 工作目录
WORKDIR  /opt/running/
# 声明变量
ENV TZ=Asia/Shanghai
# 执行命令, 同步时区
RUN set -eux; \
 apk add --no-cache --update tzdata; \
 ln -snf /usr/share/zoneinfo/$TZ /etc/localtime; \
 echo $TZ > /etc/timezone
# 开放端口
EXPOSE 8080
# 启动应用,所需指令
ENTRYPOINT ["java", "-jar", "-Xms128m", "-Xmx256m" , "mp.jar","--spring.profiles.active=develop"]

5. 执行构建 镜像命令

docker build [选项] <上下文路径/URL/->
# 例子
docker build -t mp:c73a15d 'F:\git-data\mp\'

6. 启动容器

# 后台运行, 绑定端口
docker run -d -p 8099:8080 mp:c73a15d

7. 查看容器列表

# -a 可以显示 已终止的容器
docker container ls -a

CONTAINER ID   IMAGE                                                               COMMAND                  CREATED         STATUS         PORTS                    NAMES
f8977d211434   mp:c73a15d   "java -jar -Xms128m …"   8 seconds ago   Up 7 seconds   0.0.0.0:8099->8080/tcp   agitated_shannon

8. 容器启停

docker container stop  f89
docker container start f89
docker container restart f89

9. 查看容器日志

 docker logs f89

10. 进入容器

docker attach f89  
#例子
 docker exec -it f89  tail -f logs/wx-mpp/console.log```
 docker exec -it f89 /bin/sh

11. 删除容器

# -f 可以删除一个正在运行中的 容器
docker container rm  -f f89  
# prune  删除所有处于终止状态的容器
docker container prune

12.仓库相关

仓库(Repository)是集中存放镜像的地方。

一个容易混淆的概念是注册服务器(Registry)。实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。例如对于仓库地址
docker.io/ubuntu 来说,docker.io 是注册服务器地址,ubuntu 是仓库名。

Docker Hub

# 登录
docker login
# 退出
docker logout
# 搜索
docker search centos
#拉取
docker pull centos
#推送镜像到仓库
docker push username/ubuntu:18.04

Docker 私仓

使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry 程序。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 Nexus3.x 全面支持 Docker 的私有镜像。所以使用 Nexus3.x 一个软件来管理 Docker , Maven , Yum , PyPI 等是一个明智的选择。

阿里云私仓
地址
进入创建好仓库和注册地址后

#登录
docker login --username=XXXXXXXX@qq.com registry.cn-shenzhen.aliyuncs.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值