Docker入门简明教程

这篇具有很好参考价值的文章主要介绍了Docker入门简明教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker 是基于 Go 语言实现的云开源项目,是基于 Linux 的多项开源技术提供高效、敏捷和轻量级的容器方案。创建于 2013 年初,自从开源后就受到了广泛的关注,从长远的眼光来看,Docker 是未来虚拟化的一个发展的趋势。带来了更轻量快捷的的体验,一台主机可以同时运行数千个 Docker 容器,而且在性能上几乎不会损耗。

Docker 简介

概念

Docker 是基于 Go 语言实现的云开源项目,是基于 Linux 的多项开源技术提供高效、敏捷和轻量级的容器方案。创建于 2013 年初。自从开源后就受到了广泛的关注,从长远的眼光来看,Docker 是未来虚拟化的一个发展的趋势。

优势

  1. 一次构建,处处运行,带来了更快速的交付和部署和更轻松的迁移和扩展。
  2. 对系统内核进行抽象,带来了更轻量快捷的的体验,一台主机可以同时运行数千个 Docker 容器,而且在性能上几乎不会损耗。

Docker 1.1.2 中 Ubuntu14.04 主机与 Ubuntu14.04 Docker 容器性能测试

参数 测试工具 物理主机 Docker
CPU sysbench 1 0.9945
写内存 sysbench 1 0.9826
读内存 sysbench 1 1.0025
磁盘 I O dd 1 0.9811
网络 iperf 1 0.9626

从数值上看,物理主机与 Docker 容器之间的性能差异不大,二者速度几乎一样。

基本组件

镜像:镜像是构建 Docker 世界的基石。用户的一切操作都是基于镜像来运行自己的容器的。同时镜像也是 Docke r 的 “构建” 部分,也可以把镜像当作容器的” 源代码”,镜像体积很小,便携性高,易分享、存储和更新。
容器:容器是基于镜像启动起来的,用户只需要把自己的应用程序或服务打包放进容器即可。容器中可以运行一个或多个进程,是 Docker 的启动和执行阶段。

Docker 安装

这么多年过去了,这 Docker 安装的部分仅供参考留念。

安装 Docker 的前提条件

运行 64 位 CPU 架构的计算机(这意味着一些较老的机器可能无法安装 Docker)
Linux 系统的话,得运行 Linux3.8 内核及其以上的版本,一些老版本的 2.6x 内核运行可能会出现一些无法预料的 BUG

Windows 安装 Dokcer

官网直接下载安装包,然后直接运行来安装 Docker,开启 Hyper-V (这个阶段可能需要重启), 有可用更新的话,就安装更新。
小提示:Windows 下的 Docker 启动貌似有点慢,不知道是不是我这龟速的机械硬盘的原因。
Docker入门简明教程,docker,docker,容器,运维

验证 docker 是否安装成功:在命令提示符下输入:docker
出现下面这张图即安装成功:
Docker入门简明教程,docker,docker,容器,运维

macOS 安装 Docker

首先安装 Virtual Box,官网下载:https://www.virtualbox.org
Virtual box 安装完了再安装 Docker
Docker 官网直接下载安装包: https://download.docker.com/mac/stable/Docker.dmg
macOS 下安装启动就很快了。
然后在终端下输入:

docker

Mac 和 Linux 下必须得以 root 身份才可以稳定运行 docker,

效果如下:
Docker入门简明教程,docker,docker,容器,运维

Ubuntu 安装 Docker

Linux 安装要简单的多,毕竟 Docker 一开始就是基于 Linux 提出来的。
首先以 root 身份终端下输入:

apt-get install docker.io

然后就没有然后了,1 条命令即可安装 :
Docker入门简明教程,docker,docker,容器,运维
root 身份终端下输入:docker
查看安装是否成功:
Docker入门简明教程,docker,docker,容器,运维

Dokcer 入门

搜索镜像

Dokcer 通过 Dokcer Hub 搭建镜像共享生态系统,这意味着我们可以直接下载其他人已经打包好的镜像。
使用 docker search 命令在 Docker HUB 中搜索镜像
这里我们以搜索 Ubuntu 镜像为例:

docker search ubuntu

Docker入门简明教程,docker,docker,容器,运维
一般我们下载靠前面的镜像,OFFICIAL 标签如果是 OK 的话,这表示是官方镜像,其他的都是用户自己创建并共享的镜像。

下载镜像

下面从 Docker Hub 下载 Ubuntu 镜像,终端输入:

docker pull ubuntu

Docker 默认是下载最新版本的 Ubuntu 镜像 :
Docker入门简明教程,docker,docker,容器,运维 镜像一般都很小的,网速快的话可以分分钟下载完。

列出下载的镜像

下面列出本地主机中已经下载的 docker 镜像
终端输入:

docker images

或者:

docker image ls

Docker入门简明教程,docker,docker,容器,运维
可以看到我们刚刚下载的 Ubuntu 镜像,大小才 129MB, 是 4 周前更新的版本。

创建并使用容器

使用 run 命令即可用镜像来创建一个容器

docker run -i -t --name hellodocker ubuntu /bin/bash

命令格式为:docker run <选项参数>  <镜像名称> <要运行的文件>

>使用 -i、-t选项可以在运行的Bash shell中进行输入与输出
>使用—name可以指定容器的名称。如果不指定的话,docker默认会自动生成随机的名称进行指定。

再回看这行命令大概就明白了它的意思:使用 ubuntu 这个镜像来创建一个 名为 hellodocker 的容器
当我们创建容器后,默认就进入了容器,此时使用 cd、ls 等命令发现已经不是我们物理机上的 ubutu 了。
Docker入门简明教程,docker,docker,容器,运维

退出容器

终端输入:

exit

从 Bash shell 退出,因为在 Ubuntu 镜像中直接运行 /bin/bash 可执行文件,所以退出后 容器也会终止(stop),就这样我们创建运行并退出了一个容器,现在自己再亲手创建个容器试试看吧。

查看容器列表

终端输入:

docker ps -a

查看本地的所有容器的详细信息 :
Docker入门简明教程,docker,docker,容器,运维

可以看到,除了我们第一个创建的名为 hellodocker 外,还发现了我后来新建的 GG 容器,他们都是 Exited (退出状态),这里还可以看到他们的 ID、所使用的镜像、创建时间、端口等信息 。

使用 start 命令来启动容器

到这里机智的小伙伴们可能产生疑问了:第一次创建容器是默认就进入了容器,那么在我们 exit 退出容器之后如何唤醒我们的容器呢? 表急,其实 docker 早已考虑到了这个,我们在终端下输入:

docker start hellodocker

来启动名为 hellodocker 的容器,所以启动 docker 容器的命令就是:

docker start 容器名

来启动名为 hellodocker 的容器,所以启动 docker 容器的命令就是:

docker start 容器名

使用 restart 命令来重启容器

与重启系统一样,也可以直接使用如下命令来重启某个容器:

docker restart hellodocker

使用 attach 命令连接容器

前面我们 start 了一个容器,但是还是默认不进入容器,我们使用:

docker ps -a

来查看容器的运行情况:
Docker入门简明教程,docker,docker,容器,运维

可以看到 hellodocker 这个容器已经启动了 4 秒多了,说明容器已经在运行了,那么我们怎么来连接启动的 docker 容器呢?终端输入:

docker attach hellodocker

来连接已经在后台启动的 docker 容器 :

Docker入门简明教程,docker,docker,容器,运维

小提示:这里得 按下 回车 才进入容器,不要傻等,几分钟内都没有什么反应的(不要问我怎么知道的,心酸。。。)

Docker 系统统计信息

终端下输入:

docker stats

用来显示一个或多个容器的统计信息,可以看到容器的 ID、CPU 占用率、内存使用率、网速等信息 :

Docker入门简明教程,docker,docker,容器,运维

终止容器

要终止容器的话,首先 docker ps -a 列出后台正在运行的容器,然后终端输入:

docker stop hellodocker

终止了我们刚启动不久的 hellodocker 容器

删除容器

如果容器不再使用可以使用如下命令删除:

docker rm GG

删除了 GG 的容器(你要删除的容器必须已经停止运行了)

删除镜像

如果镜像不再使用可以使用如下命令删除:

docker rmi ubuntu

删除了本地的 ubuntu 镜像(此刻必须删除所有运行在这个镜像上的容器) :

Docker入门简明教程,docker,docker,容器,运维

OK Docker 的入门命令就教到这里了,下面我们来实战一把吧。

Docker 简约命令

列出下载的镜像

docker image ls

部署容器

docker run --name hellodocker -d -p 81:80 ubuntu:18.04

创建并使用容器

docker run -i -t --name hellodocker ubuntu /bin/bash

查看容器列表

docker ps -a

使用 start 命令来启动容器

docker start 容器名

使用 restart 命令来重启容器

docker restart 容器名

使用 attach 命令连接容器

docker attach 容器名
docker exec -it 容器名 /bin/bash
docker exec -it 容器名 /bin/zsh

Docker 系统统计信息

docker stats

终止容器

docker stop 容器名

删除容器

docker rm 容器名

删除镜像

docker rmi ubuntu

Dockfile

构建镜像

docker build -t test:v1 .

打造属于你自己的 Kali

一般我们搞信息安全的难免都会用到 Kali Linux,如果不想安装累赘的虚拟机或者不想折腾更新源等那么该肿么办呢?现在有了 Docker,这一切的问题都不再是问题,使用 Docker 来运行 Kali,更加轻便快捷,而且可以 ping 通物理机的 C 段,用来实战的话再合适不过了。 秀个主题先:
Docker入门简明教程,docker,docker,容器,运维

安装了 macOS 的主题后,Ubuntu 也感觉不再那么难用了。(嘿嘿 不扯了 赶紧步入正题了)

首先搜索下可用的 Kali 镜像

docker search kali

Docker入门简明教程,docker,docker,容器,运维

出来了一大堆,根据名字可以大概判断出第二个镜像是带有 meatsploit 的,所以为了日后配置的方便我们这里直接来下载第二个镜像。

下载 Kali 镜像

docker pull linuxkonsult/kali-metasploit

下载带有 msf 的 kali 镜像(镜像不大,我这边下载完不到 10 分钟)

创建 Kali 容器

docker run -i -t --name  msfkali linuxkonsult/kali-metasploit /bin/bash

用下载的 kali 镜像创建个名为 msfkali 的容器

进入容器查看基本信息

可以看到 kali 使用的是默认源,这里我要说一下,kali 2016.X 版本的 kali 使用这个默认官方源就好, 这个默认的官方源会自动选择速度最快的镜像站点来下载。

$ cat /etc/apt/sources.list
deb http://http.kali.org/kali kali-rolling main contrib non-free
deb-src http://http.kali.org/kali kali-rolling main contrib non-free

终端输入:

msfconsole

可以看到默认是带 metasploit 的,看来我们之前猜的没错 :

Docker入门简明教程,docker,docker,容器,运维

除此之外还带了 nmap、wget、git 等,但是这些工具还不够我们完成一次渗透测试

安装自己需要的工具

首先先刷新下更新缓存列表:

apt update

然后就可以直接安装工具了

apt install 工具名

这里你需要什么工具就安装什么工具,速度很快的,用什么就安装什么,没有什么比这个更 DIY 的了。举个例子:你想安装个 aircrack 来破解 WiFi 密码,那么就直接:

apt-get install aircrack-ng

总之,这个 Kali Docker 就是 Kali 的命令行,和正常是 Kali 一模一样,该怎么折腾就怎么折腾吧。

其他

Docker 搭建 sqli-labs 环境

docker pull acgpiano/sqli-labs
docker run --name sqli-labs -d -p 8080:80 acgpiano/sqli-labs
docker exec -it ID /bin/bash
  • MySQL 默认密码为 空
  • 浏览器访问:127.0.0.1:8080
  • 初始化数据库先

Docker 搭建 Portainer 图形管理工具

$ docker search portainer
$ docker pull portainer/portainer
$ docker run -d -p 9000:9000 --restart=always -v  /var/run/docker.sock:/var/run/docker.sock --name portainer portainer/portainer

Docker 搭建宝塔面板注意事项

centos7 镜像,做好端口映射
8080:88 888:888 8888:8888 8081:80
每次重启的时候得手动启动服务:文章来源地址https://www.toymoban.com/news/detail-816492.html

$ /etc/init.d/bt start
$ /etc/init.d/mysqld start
$ /etc/init.d/nginx start
$ /etc/init.d/php-fpm-54 start
$ /etc/init.d/php-fpm-73 start

到了这里,关于Docker入门简明教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HuggingFace简明教程

    视频链接:HuggingFace简明教程,BERT中文模型实战示例.NLP预训练模型,Transformers类库,datasets类库快速入门._哔哩哔哩_bilibili 什么是huggingface?huggingface是一个开源社区,它提供了先进的NLP模型,数据集,以及其他便利的工具。 数据集:Hugging Face – The AI community building the future.  这

    2024年01月25日
    浏览(50)
  • 【Verilator】 1 简明教程

    我是 雪天鱼 ,一名FPGA爱好者,研究方向是FPGA架构探索和数字IC设计。 欢迎来关注我的B站账号,我将定期更新IC设计教程。 B站账号: 雪天鱼 ,https://space.bilibili.com/397002941?spm_id_from=333.1007.0.0 先从GitHub下载实验代码 以一个用SystemVerilog编写的简单ALU来作为DUT(device under test)

    2024年02月02日
    浏览(69)
  • mpack简明教程

    本文先简单介绍MessagePack的基本概念。 然后,介绍一个MessagePack C API - MPack的通常使用。 接着尝试对MPack截断数据的读取。 注:本文完整代码见仓库。 如果你使用过C/C++的json库,那么上手MessagePack是比较容易的。关于C/C++ Json库的使用可见:C++ JSON库的一般使用方法-CSDN博客。

    2024年02月20日
    浏览(53)
  • Husky使用简明教程

    Husky 是一个流行的 Git 钩子工具,用于在不同的 Git 操作(如提交和推送)前自动运行脚本。比如代码格式化、静态检查等。这有助于保持代码库的质量和一致性。本教程将详细介绍 Husky 的原理、使用方式、配置方法以及如何在开发中集成 Husky。 Husky 原理 安装 Husky 配置 Hus

    2024年04月10日
    浏览(51)
  • shell简明教程3函数

    在本章中,您将了解为什么以及何时需要使用函数。 你将学习如何创建函数以及如何使用函数。 我们将讨论变量及其作用域。 学习如何使用参数访问传递给函数的参数。 最后,您还将学习如何使用函数处理退出状态和返回代码。 计算机编程和应用程序开发中有一个概念叫

    2024年02月11日
    浏览(52)
  • Blender骨骼动画简明教程

    Blender 是首选的开源3D动画软件之一。 令人惊讶的是,开始创建简单的角色动画并不需要太多时间。 一旦获得最终的 3D 角色模型,你就可以使用该软件的众多动画功能和工具将其变为现实。 推荐:用 NSDT编辑器 快速搭建可编程3D场景 例如,Blender 的绑定工具将帮助你实现角色

    2024年02月07日
    浏览(53)
  • AI绘画工具简明教程

    官方地址 首先需要邮箱注册,等待邀请(可能需要等待一两天) 能成功登录后会进入这样一个界面 https://app.scenario.com/generators 创建模型 提供的图片集上传的时候得是jpg,还需要裁剪成正方形。批量修改图片在线网站:https://www.birme.net/ 根据图集生成图片 官方网址:https://

    2024年02月11日
    浏览(72)
  • WebGPU开发简明教程【2023】

    WebGPU 是一种全新的现代 API,用于在 Web 应用程序中访问 GPU 的功能。 在 WebGPU 之前,有 WebGL,它提供了 WebGPU 功能的子集。 它启用了新一类丰富的网络内容,开发人员用它构建了令人惊叹的东西。 然而,它基于 2007 年发布的 OpenGL ES 2.0 API,而该 API 又基于更旧的 OpenGL API。

    2024年02月16日
    浏览(48)
  • 电商3D产品渲染简明教程

    3D 渲染让动作电影看起来更酷,让建筑设计变得栩栩如生,现在还可以帮助营销人员推广他们的产品。 从最新的《阿凡达》电影到 Spotify 的上一次营销活动,3D 的应用让一切变得更加美好。 在营销领域,3D 产品渲染可帮助品牌创建产品的高分辨率图像和视频,这些图像和视

    2024年02月13日
    浏览(39)
  • stable diffusion使用简明教程

    controlNet模块使用 上面骨骼图是通过Openpose Editor调整姿势然后send to txt2img到这里的,使用Openpose Edito中姿势生成需要将Openpose Editor指定为none状态。 Preprocessor选项: Preprocessor部分选项使用教程 官方教程链接:Control human pose in Stable Diffusion Stable Diffusion Art (stable-diffusion-art.com) 1.

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包