惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
C
CERT Recently Published Vulnerability Notes
P
Proofpoint News Feed
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
云风的 BLOG
云风的 BLOG
H
Help Net Security
Recorded Future
Recorded Future
The Register - Security
The Register - Security
F
Full Disclosure
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
爱范儿
爱范儿
Security Archives - TechRepublic
Security Archives - TechRepublic
Simon Willison's Weblog
Simon Willison's Weblog
Cisco Talos Blog
Cisco Talos Blog
I
InfoQ
T
Tenable Blog
T
Tor Project blog
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net
NISL@THU
NISL@THU
Google DeepMind News
Google DeepMind News
博客园 - 叶小钗
B
Blog
V
V2EX
Jina AI
Jina AI
L
LangChain Blog
月光博客
月光博客
W
WeLiveSecurity
U
Unit 42
AWS News Blog
AWS News Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 聂微东
V
Visual Studio Blog
A
Arctic Wolf
T
Tailwind CSS Blog
The Cloudflare Blog
SecWiki News
SecWiki News
S
SegmentFault 最新的问题
Hacker News - Newest:
Hacker News - Newest: "LLM"
宝玉的分享
宝玉的分享
MyScale Blog
MyScale Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Securelist
www.infosecurity-magazine.com
www.infosecurity-magazine.com
腾讯CDC
雷峰网
雷峰网

技术改变视野

为程序员、设计师打造的摸鱼社区:摸鱼派! - 技术改变视野 大白话 | Java初学指♂男:“说说初学的误区与死结”( 壹 | 反射与Field ) - 技术改变视野 大白话之耦合性:什么是耦合性和内聚性?用编程语言实例讲解! - 技术改变视野 🎨 适用于 Solo / Bolo 的清新高级主题 —— Sakura | 移植自 WordPress 主题 - 技术改变视野 我在 GitHub 上的开源项目 - 技术改变视野 为IDEA/Git配置GPG密钥,点亮GitHub Verified Commit标识 - 技术改变视野 从 SpringMVC 转为使用 SpringBoot —— 手把手带你使用 Intellij IDEA 最快速地搭建 SpringBoot+MyBatis(无 XML)+Thymeleaf - 技术改变视野 无题 - 技术改变视野 年轻人的第一辆京牌电动车 - 技术改变视野 我们忙碌且漫长的一生,有多久是为自己而活? - 技术改变视野 一个最简单的实例理解Semaphore在Java中的作用 - 技术改变视野 说说《后浪》 - 技术改变视野 离线使用 Google Fonts:让你的网站更精致 | goofoffline 神器,一键下载生成离线字体库! - 技术改变视野 实例带你学会简单的Java Thread多线程 - 技术改变视野 一个实例理解Java的接口(interface)用处与用法 - 技术改变视野 一个实例带你理解JavaBean - 技术改变视野 WebFilter-SpringBoot过滤器注解实例讲解 - 技术改变视野 实例带你搞懂Java多线程&&线程池之(壹):线程池与多线程的关系和区别 - 技术改变视野 实例带你搞懂Java多线程&&线程池之(贰):简单的线程池应用 - 技术改变视野 实例带你获取多线程Thread的返回值之 (壹) - Callable的运行 - 技术改变视野 实例带你获取多线程Thread的返回值之 (贰) - Callable配合线程池返回数据 - 技术改变视野 一个实例理解Java Runnable多线程用处与用法 - 技术改变视野 从零开始OpenSSL之 (壹) - 使用genrsa、rsa、rsautl生成公私钥 - 技术改变视野 从零开始 OpenSSL 之 (贰) - 使用 rsautl 解密文件 - 技术改变视野 大白话之Docker(贰):简单部署一个Tomcat服务并发布内容 - 技术改变视野 大白话之从零讲解DVWA(壹)-SQL注入(SQL Injection) Low Level - 技术改变视野 大白话之从零讲解DVWA(贰)-SQL注入(SQL Injection) Medium/High Level - 技术改变视野 Java日志插件-Slog4J下载 - 技术改变视野 大白话之必会Java Atomic | 线程一点也不安全(一):比自增和synchronized更快速、靠谱的原子操作(调用C语言) - 技术改变视野 Log-MySQL root用户登录后无法查看数据库全部表/正常访问数据库 Access denied for user 'root'@'localhost' to database - 技术改变视野 大白话之Docker(叁):制作一个运行Tomcat服务端的Docker镜像 - 技术改变视野 Github仅保留指定文件/文件夹当前Commit,删除所有历史记录,清除「敏感信息」 - 技术改变视野 将Tomcat、MySQL从Linux迁移到Windows的心路历程(干货):令人恐惧的字符编码 - 技术改变视野 Spring: java.lang.NoSuchMethodError: clearCache | ClassNotFoundException | Error during artifact deployment 思路及解决办法 - 技术改变视野 大白话之Java反射-初学最迷的概念:能干啥?咋用? - 技术改变视野 大白话之Java面向接口编程:最“正经”的中文实例讲解,看不懂来打我! - 技术改变视野 大白话 | 课堂实践:使用Iterator对数组进行遍历 - 技术改变视野 大白话之fail-fast | fail-safe:为什么会有这个机制?它有什么作用? - 技术改变视野 刨根问底 | 大白话:在使用注解后,框架是怎么知道你哪个方法使用了注解的?用@RequestMapping注解举例详解! - 技术改变视野 大白话之必会Java Atomic | 线程一点也不安全(二):Atomic的ABA问题会导致什么情况?如何解决? - 技术改变视野 随笔 | 奇淫技巧 | Java:记return和短路运算符的妙用 - 技术改变视野 随笔 | Tomcat:续-从Linux迁移到Windows编码问题彻底解决 - 技术改变视野 大白话之AutoClosable接口 | try-with-resources:JDK1.7的新特性,提高重复回收效率 - 技术改变视野 大白话之Java多线程join方法:开局一张图,试学一分钟,你就费和我一样,理解介个方法 - 技术改变视野 大白话之Java Stream流:将类数组流化,便捷批量修改,通俗讲解! - 技术改变视野 Java 困扰三周の问题:使用byte[]或skip()方法读取字节流Stream文件尾部多/少/缺字节解决方法 - 技术改变视野 大白话之Java级联调用:一个类,一条语句,同时调用好几个方法,串成一串 - 技术改变视野
大白话之Docker(壹):快速入门&&简单官方实例 - 技术改变视野
adlered · 2019-12-09 · via 技术改变视野

前言

无论你用的是Python,Java还是Golang或是什么语言,Docker都能以降低服务器应用耦合性(点我了解耦合性),方便管理等优点。值得在你的服务器中占有一席。

如果你使用过Linux或macOS,你可能对一款软件很熟悉:Wine。它用于配置一个运行环境的容器,让Windows软件在这个容器中运行,Docker与它的原理相似。

细读!Docker概念

我在网上看到的图大部分都很繁琐,反而会越研究越迷糊。我们从最接近我们的方向往外讲:

容器(Container)

容器就像虚拟机一样,是一个隔离于物理机的空间。你在里面放好需要的运行环境:比如你需要在容器里运行Python脚本,你就可以给容器安装Python,也可以在里面放入你的脚本程序。

在容器中写入一段规定的脚本内容,你就可以让Docker启动这个容器并且按照你的脚本来执行命令。

无论容器内的应用怎么折腾,也跑不出这个容器。

假如你在容器里配置了一个Tomcat服务器,而这个Tomcat服务器是需要Java才能运行的,只要你在容器中装好了Java,就算更换服务器后系统里没有Java也没有任何问题。因为容器是被隔离的,只要容器中环境配置好了,和物理机没有任何关系。

同理,如果你在物理机中安装了Java,但在容器中没有安装Java的话,容器中的应用是无法正常运行的,因为容器无法访问外部内容。

镜像(Image)

看到镜像这个词,如果你对计算机没有深入了解的话,你可能会联想到光盘,或者你会联想到安装系统用的ISO镜像。实际上,Docker也与这些东西出入不大。它本质就是一个将一切都部署完毕,然后打包好了的镜像。

当你将一个项目和它的环境部署完毕后,你就可以将它打包成镜像。当你想使用的时候,就把它解压为一个容器并运行。

镜像是不能运行的,只有将镜像解压为一个容器后才能被运行。

注意:容器中所做的改动不会保存到镜像

卷(Volume)

卷就像是一块移动硬盘,哪个容器需要存储文件,就把它挂在到这个容器中。因为容器中产生的数据重启后会丢失(恢复到初始镜像状态),所以如果需要在容器运行过程中存储文件,一定要挂载卷给容器,卷中的文件重启Docker后不会丢失

注意:除非你使用了卷,否则容器内运行期间产生的数据在容器关闭后,又将回到你启动容器时的原始镜像状态。

Docker环境配置

Docker官方下载地址

For Windows

Windows

For macOS

macOS

For Linux

CentOS

Debian

Fedora

Ubuntu

安装的步骤不再过多阐述,一般情况下跟随安装向导安装即可,十分便捷。

登录Docker(可选)

如果要使用在线仓库,必须登录Docker才能使用,请先到:
这里注册一个账号
然后在命令行中输入:

1docker login -u [用户名] -p [密码]

部署完成。

Hello World!

在命令行输入命令:

 1adler@A ~/DKT > docker run hello-world
 2
 3Hello from Docker!
 4This message shows that your installation appears to be working correctly.
 5
 6To generate this message, Docker took the following steps:
 7 1. The Docker client contacted the Docker daemon.
 8 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 9    (amd64)
10 3. The Docker daemon created a new container from that image which runs the
11    executable that produces the output you are currently reading.
12 4. The Docker daemon streamed that output to the Docker client, which sent it
13    to your terminal.
14
15To try something more ambitious, you can run an Ubuntu container with:
16 $ docker run -it ubuntu bash
17
18Share images, automate workflows, and more with a free Docker ID:
19 https://hub.docker.com/
20
21For more examples and ideas, visit:
22 https://docs.docker.com/get-started/

如果运行出现问题,那么你可能没有科学上网,你懂的......
你也可以跳过本段继续学习,下章教程我们将在本地构建一个Docker镜像。

后语

你现在位于第一章。如果要继续学习Docker本地环境配置:
点击这里跳转至第二章