三分钟轻松搞定docker,建议收藏,评论继续送书

Posted 香菜聊游戏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三分钟轻松搞定docker,建议收藏,评论继续送书相关的知识,希望对你有一定的参考价值。

目录

1、docker 是啥

1.1 docker概念

1.2 docker 和虚拟机的区别

1.3 docker 的架构

2、dockerfile 制作

3、常用的docker命令

4、一个例子


做了好久的游戏,感觉和外面的技术有点脱节,游戏公司的技术基本上都是固定的,因为生产效率第一,所以更新换代比较慢。作为一个程序不能停止学习,因为停止学习就会被社会抛弃,今天聊一下docker ,这个现在比较火的交付容器技术。还不赶紧学起来。

1、docker 是啥

1.1 docker概念

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

换句人话说docker 就是在部署的时候屏蔽环境细节的一个环境。

1.2 docker 和虚拟机的区别

docker 是更轻量级的虚拟机,就是一个软件,更节省系统资源

Docker 容器将软件以及它运行安装所需的一切文件(代码、运行时、系统工具、系统库)打包到一起,这就保证了不管是在什么样的运行环境,总是能以相同的方式运行。就好像 Java 虚拟机一样,“一次编写,到处运行(Write once, run anywhere)”,而 Docker 是“一次构建,到处运行(Build once,run anywhere)

1.3 docker 的架构

client 就是我们发送命令的地方,也是我们常操作的地方

docker host 就是我们服务器上的容器,也是app 运行的地方

registry 就是存放app 的地方,可以搭建私有的仓库,官方的Docker hub是一个用于管理公共镜像的好地方。

2、dockerfile 制作

dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

Docker通过读取Dockerfile中的指令自动生成映像。

Dockerfile的基本结构

Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。

Dockerfile文件说明

Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。一个声明以字符开头则被视为注释。可以在Docker文件中使用RUNCMDFROMEXPOSEENV等指令。

# 基础镜像
FROM java:8
# 默认工作空间
VOLUME /tmp
WORKDIR /opt/his
# 复制为ecard
ADD target/server-adapter-0.0.1-SNAPSHOT.jar /opt/his/server-adapter.jar
ADD run.sh /opt/his/run.sh
​
RUN bash -c 'touch /server-adapter.jar'
# 时钟
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#暴露端口对外
EXPOSE 9083
EXPOSE 9081
#执行 脚本
ENTRYPOINT ["bash","/opt/his/run.sh"]
 

3、常用的docker命令

docker ps 列出容器

配合 grep 使用,查出自己的app的容器id :d4f5ae7107f3

docker inspect : 获取容器/镜像的元数据,可以查看自己配置的环境变量和挂载的目录

docker top :查看容器中运行的进程信息,支持 ps 命令参数。

docker logs -f 跟踪日志输出

docker exec :在运行的容器中执行命令 docker exec -it cid bash

docker cp :用于容器与主机之间的数据拷贝 docker cp src dest

docker rm :删除一个或多个容器。 -f 强制删除一个运行中的容器 docker

docker start :启动一个或多个已经被停止的容器

docker stop :停止一个运行中的容器

docker restart :重启容器

docker images 来列出本地主机上的镜像

-v 挂载的只能

有几点需要注意:

  • host机器的目录路径必须为全路径(准确的说需要以/~/开始的路径),不然docker会将其当做volume而不是volume处理

  • 如果host机器上的目录不存在,docker会自动创建该目录

  • 如果container中的目录不存在,docker会自动创建该目录

  • 如果container中的目录已经有内容,那么docker会使用host上的目录将其覆盖掉

volume也是绕过container的文件系统,直接将数据写到host机器上,只是volume是被docker管理的,docker下所有的volume都在host机器上的指定目录下/var/lib/docker/volumes。

将my-volume挂载到container中的/mydata目录:

4、一个例子

下面是一个在公司使用的启动脚本,主要做了几件事情

注入环境变量

挂载目录

暴露端口

设置文件镜像

 

 

全面。本书从并发的底层核心技术、互联网应用框架、数据处理等三部分对高并发系列技术做了系统讲解。
(2)实用。本书以实战化训练为宗旨,用详尽且经典的案例阐述了 Java大数据及高级编程中的重点、难点。书中案例由真实项目演化而来,既体现了所述知识点的精华,又屏蔽了无关技术的干扰。
(3)案例完整。案例都是以“理论讲解 环境搭建 完整代码及分析 运行截图”这种完善的结构进行讲解,考虑到了读者可能会遇到的各种问题。

京东自营购买链接:

《亿级流量Java高并发与网络编程实战》(颜群)【摘要 书评 试读】- 京东图书

当当自营购买链接:

《亿级流量Java高并发与网络编程实战》(颜群)【简介_书评_在线阅读】 - 当当图书

大家点赞关注,三天后在留言的同学中抽取送两本书

注:如果中奖了没关注则放弃

以上是关于三分钟轻松搞定docker,建议收藏,评论继续送书的主要内容,如果未能解决你的问题,请参考以下文章

三分钟轻松搞定docker,建议收藏

3分钟教你搞定VMware 克隆虚拟主机之Centos系列虚拟机克隆[⭐建议收藏⭐]

3分钟教你搞定VMware 克隆虚拟主机之Centos系列虚拟机克隆[⭐建议收藏⭐]

万字长文+100余张图轻松搞定Unix/Linux环境使用,建议收藏!

Docker 简介 | 附入门实例文末送书

数据结构 5分钟带你搞定哈希表(建议收藏)!!!