《Spring快速入门》读书笔记 第10章 Docker入门

个人读书笔记,题外话都写在第1章https://blog.csdn.net/u013652550/article/details/119800308


        第10章主要介绍了一些Docker核心知识和指令,本章笔记偏向使用时查阅。

10.1 Docker基础

        三大核心概念:镜像(Image)、容器(Container)、仓库(Repository)。

        Hadoop:是一个由Apache基金会所开发的分布式系统基础架构。

        帮助文档直接通过命令行docker COMMAND --help查看。

        通过docker run hello-world测试。通过docker 命令名 --help查看使用帮助。

10.2 Docker镜像

命令作用示例
pull获取镜像docker pull hello-world:latest
images查看镜像docker images
tag添加镜像标签docker tag hello-world:latest myhello-world:latest
inspect查看详细信息docker inspect hello-world
history查看镜像历史记录docker history hello-world
search镜像查找docker search -f=stars=3 hello-world
rmi删除镜像docker rmi myhello-world:latest
commit创建镜像docker commit -m "add a image" -a "cuiyw" 90e4296835b8 cuiyw-hello-world
import导入tar文件docker import G:\hello-world.tar hello-world-import:latest
export导出容器docker export 90e4296835b8 -o G:\hello-world.tar
save另存镜像docker save -o G:\helloworld-save.tar
load载入镜像docker load -i G:\helloworld-save.tar

10.3 容器

命令作用示例
create新建容器docker create -it ubuntu
start启动容器docker start f8385c139e00
run新建并启动容器docker run -it ubuntu
run -d守护态运行docker run -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 10;done;"
ps查看状态docker ps -a
stop终止容器docker stop 29c19cd0caa7
attach进入容器docker attach keen_golick
exec进入容器docker exec keen_golick bin/bash
export导出容器docker export -o G:\ubuntu.tar 44ce0074a613
import导入容器docker import G:\ubuntu.tar import_ubuntu

10.4 搭建私有仓库

        以下为书上示例:

        搭建仓库:docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
        设置tag:docker tag busybox 127.0.0.1:5000/busyboxdocker
        上传到仓库:docker push 127.0.0.1:5000/busyboxdocker

10.5 数据管理

        主要有数据卷、数据卷容器两种方式。以下为书上示例:

1. 数据卷

        在G:\docker\test目录下创建两个文件。挂载:docker run -d -it --name=test -v G:/docker/test:/test ubuntu /bin/sh

        使用docker ps -a即可找到上面运行的容器,再使用docker exec -it 75ae60cef308 /bin/sh即可打开文件夹及文件。

        使用docker run -d -it --name=vtest -v /vtest ubuntu /bin/sh创建了ubuntu镜像的容器vtest,并在容器中创建了一个名为vtest的数据卷。

2. 数据卷容器

        数据卷容器就是一种普通容器,专门提供数据卷供其他容器挂载使用。这里以上面创建的test容器为例,将其作数据卷容器。通过下面命令创建了db1、db2两个容器,使用--volumes--from参数挂载test容器中的数据卷。

        docker run -it --volumes-from test --name db1 ubuntu /bin/sh
        docker run -it --volumes-from test --name db2 ubuntu /bin/sh

10.6 端口映射与容器互联

        上文docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry中-p后的参数即进行端口映射。大写-P是随机映射一个49000~49900的端口到内部容器开放的网络端口,小写-p可以指定,并且在一个指定端口上只可以绑定一个容器。支持格式以下三种,仅最后一种常用:

        ip:hostPort:containerPort
        ip::containerPort
        hostPort:containerPort

        使用port来查看映射情况。

        容器互联使用--link即可。示例启动mysql server:docker run --name mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql,关联:docker run --name webapp --link mysql:db -it -d ubuntu /bin/sh。

10.7 Dockerfile

        可以在build命令中使用-f标志指向文件系统中任何位置的Dockerfile。CMD、ENTRYPOINT各自叠加或重复叠加使用时仅最后一条生效。

命令作用格式/说明
FROM基础镜像信息FROM <image>或FROM <image>:<tag>
MAINTAINER指定维护者信息MAINTAINER <name>
RUN运行指定命令RUN <command>或RUN ["executable","param1","param2"]
CMD容器启动时指定操作CMD ["executable","param1","param2"]
ENTRYPOINT指定容器启动时执行命令ENTRYPOINT ["executable","param1","param2"]
LABEL给镜像添加信息LABEL <key>=<value>
EXPOSE将容器中的端口映射首先在Dockerfile中使用EXPOSE设置需要映射的容器端口,运行时使用-p
ENV指定环境变量ENV <key> <value>或ENV <key>=<value>
ADD将目录下文件添加到容器中不含目录
COPY复制本地主机srcCOPY <src> <dest>
VOLUME使容器中目录持久化VOLUME ["/data"]
USER设置启动容器的用户USER daemon
WORKDIR指定配置工作目录在RUN CMD ENTRYPOINT等前使用
ONBUILD配置当前镜像为其他镜像基础ONBUILD [INSTRUCTION]
ARG指定一些镜像内使用参数ARG name [=default value]。docker build --build-arg <name>=<value>指定参数值

10.8 Docker容器Tomcat部署war包

        创建Tomcat容器:docker run -d --name cmdtomcat -p 8080:8080 tomcat
        上传war包到Tomcat容器:Docker cp G:\dockerwar\SpringBootSwagger-0.0.1-SNAPSHOT.war cmdtomcat:/usr/local/tomcat/webapps
        重启容器:docker restart cmdtomcat
        访问应用:输入http://localhost:8080/SpringBootSwagger-0.0.1-SNAPSHOT/swagger-ui.html即可正常显示页面。
        以挂在房石启动:docker run -d -v G:/dockerwar/SpringBootSwagger-0.0.1-SNAPSHOT.war:/usr/local/tomcat/webapps/SpringBootSwagger-0.0.1-SNAPSHOT.war --name cmdtomcat2 -p 8081:8080 tomcat,访问时URL改为8081端口即可。

        可能用到的一些参考资料:

        Swagger ui stuck on unable to infer base url · Issue #1996 · springfox/springfox (github.com)

        Docker(四):Docker 部署 tomcat 运行war包_树欲静而风不止-CSDN博客_docker运行war包

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值