IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 三分钟轻松搞定docker,建议收藏 -> 正文阅读

[系统运维]三分钟轻松搞定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、一个例子

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

注入环境变量

挂载目录

暴露端口

设置文件镜像

?
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:44:28  更:2021-09-29 10:44:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:17:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码