Docker超详细基础教程,快速入门docker首选(万字长文建议收藏)_docker入门教程

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

这张图是分层的。最下面一层,上面也是一层层的好像集装箱罗列在一起。这就是镜像最直观的存储方式。下面是操作系统的引导,上面是linux操作系统,再上面是一些相关的软件。如果是我们自己的程序,就可以是tomcat,jdk,再往上是应用代码。每一层是我们自己都可以控制得,最上面一层先忽略不看,因为这是和容器有关的。注意一点,docker镜像系统的每一层都是只读的,然后把每一层加载完成之后这些文件都会被看成是同一个目录,相当于只有一个文件系统。docker的这种文件系统被称之为镜像。

4.2 容器

为了便于理解,大家可以把容器想象成虚拟机。每个虚拟机都有自己的文件系统,可以把上图整个一部分看成是文件系统,与虚拟机系统的区别是这里面的文件系统是一层一层的,并且最下面的n层都是只读的,只有上面一层是可写的。为什么要有可写的这层呢?大家的程序运行起来,势必会要写一些日志,写一些文件,或者对系统的某一些文件做一些修改,所以容器在最上面一层创建了可读可写的文件系统

因为镜像的每一层都是只读的,所以在程序的运行过程中要写镜像文件时,它会把文件的每一层拷到文件的最上层,然后再对它进行修改。修改之后,当我们的应用读一个文件时会从顶层进行查找,如果没有才会找下一层。

由于容器的最上一层是可以修改的,镜像是不能修改的,这样就能保证镜像可以生成多个容器独立运行,没有任何干扰。

4.3 仓库

我们的镜像是要在其它机器上运行,如何进行传输呢?

这就用到了docker仓库,我们要先把我们的镜像传到docker仓库中,再由目的地把docker仓库拉过去,这就完成了这样的一次传输过程。

谁提供了这样的仓库呢?docker自己提供了hub.docker.com。但是非常慢为了解决这个问题,国内很多公司也在做自己的仓库。

二、docker安装

因为在虚拟机中安装的是linux的redhat7.4,所以接下来将介绍如何在redhat中安装docker。以下方法通用于linux内核,只是安装包有可能不同。

安装需满足以下要求:

  • 64位操作系统
  • 3.1及以上的Linux内核
  • iptables版本在1.4及以上
  • git版本在1.7及以上
  • A ps executable, usually provided by procps or a similar package.
  • XZ Utils 4.9 or higher
  • A properly mounted cgroupfs hierarchy; a single, all-encompassing cgroup mount point is not sufficient.

通过 uname -r命令查看你当前的内核版本。

1.在线安装

1.1 如果安装过请先卸载
yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-engine
1.2 安装依赖设置yum仓库

安装依赖:

yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

设置仓库:

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
1.3 安装docker
yum install docker-ce docker-ce-cli containerd.io
1.4 启动并加入开机启动
systemctl start docker

systemctl enable docker

1.5 验证是否安装成功
docker version

docker run hello-world

能够看到输出 Hello from Docker! 就OK了!

2.离线安装

在某些情况下,我们可能需要离线安装docker,那么接下来将详细介绍如何实现docker的离线安装。

2.1 下载docker压缩包

download.docker.com下载对应的docker包,我这里下载的是docker-18.03.1-ce.tgz版本,如果有需要可以直接私信我。

2.2 解压文件
[root@devops-102 ~]# tar -xvzf docker-18.03.1-ce.tgz 

2.3 将文件移动到系统目录下 excutable path

ps:本步骤为可选步骤,也可以把解压路径放到PATH变量中。

$ sudo cp docker/* /usr/bin/

执行后会看到 API listen on /var/run/docker.sock 的提示,表示docker已经在运行了。

2.4 启动Dockerd
$ sudo dockerd &
2.5 验证
$ sudo docker run hello-world

能够看到输出 Hello from Docker! 就OK了!

2.6 设置开机自启动
systemctl start docker       

systemctl enable docker

三、docker基础操作

当我们安装好docker后,由于我做深度学习方面的研究,所以我们需要安装相应的深度学习环境,以配置pytorch环境为例,接下来会一步步介绍如何构建一个属于自己的镜像。

1.镜像基本操作

1.1 抓取镜像

首先我们进入dockerhub网站选择一个我们需要的镜像。

然后输入:

docker pull pytorch/pytorch

通过此命令可以docker远程仓库拉取镜像到本地。

docker pull [options] NAME[:TAG]

name是拉取镜像的名称;TAG表示是可选的,如果不选表明时latest,如果选择表明是指定版本的。
options是拉去的一些参数,当不加请求地址的时候回去docker的官网拉取镜像。

1.2 查看镜像
docker images 

通过此命令可以查看当前存在哪些镜像。

docker images [options] [REPOSITORY[:TAG]]

options是选项,后面是指定镜像的名称。这个用的不多,可能当本地镜像非常多的时候要指定查看某一个镜像。
IMAGE ID 其实是一个64位的字符串,它可以唯一标识我们的镜像,这里只显示了16位,后面的被截掉了

1.3 启动交互式容器
docker run -it -v /home/admin/workplace:/workspaces --name bert_pytorch pytorch/pytorch /bin/bash

docker run -t -i -v 本地目录:虚拟目录 --name 自定义名称 IMAGE_NAME /bin/bash

-i –interactive=true | false,默认是false
-t –tty=true | false,默认是false
–name 给启动的容器自定义名称,方便后续的容器选择操作
启动交互式的容器,就是类似虚拟机、云主机的操作方式,操作完一个命令后仍然可以继续

1.4 删除镜像
docker rmi d77dc4c8ebab

docker rmi 镜像的标识

标识可以是id或者name。

2.容器的操作

2.1 运行容器

简单操作

docker run 镜像的标识|镜像名称[tag]

常用的参数

docker run -d -p  宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[tag]

-d: 代表后台运行容器

-p: 宿主机端口:容器端口: 为了映射当前Linux的端口和容器的端口

–name 容器名称: 指定容器的名称

2.2 查看正在运行的容器

docker ps [OPTIONS]

OPTIONS说明:

-a: 代表查看全部的容器,包括没有运行

-q: 只查看容器的标识

-f: 根据条件过滤显示的内容

–format: 指定返回值的模板文件

-l: 显示最近创建的容器

-n: 列出最近创建的n个容器

–no-trunc: 不截断输出

-s: 显示总的文件大小

2.3 查看容器的日志

docker logs -f 容器id

-f: 可以滚动查看日志的最后几行

2.4 进入到容器内部

docker exec -it 容器id bash

2.5 删除容器(删除容器前,需要先停止容器)

docker stop 容器id

停止指定的容器

docker stop $(docker ps -qa)

停止全部容器

docker rm 镜像id

删除指定容器

docker rm $(docker ps -qa)

删除全部容器

2.6 启动容器

docker start 容器id

3.构建镜像

构建Docker镜像,可以保存对容器的修改,并且再次使用。构建镜像提供了自定义镜像的能力,以软件的形式打包并分发服务及其运行环境。Docker中提供了两种方式来构建镜像:

  • 通过容器构建:docker commit
  • 通过Dockerfile:docker build
3.1 使用commit命令构建镜像
docker commit 7843e0556e67 bertpytorch

命令:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

参数:
-a,–author=“”,指定镜像的作者信息
-m,–message=“”,提交信息
-p,–pause=true,commit时是否暂停容器

3.2 使用Dockerfile文件构建镜像

Docker允许我们利用一个类似配置文件的形式来进行构建自定义镜像,在文件中可以指定原始的镜像,自定义镜像的维护人信息,对原始镜像采取的操作以及暴露的端口等信息。比如:

# Sample Dockerfile
FROM ubuntu:16.04
MAINTAINER wgp "Kingdompin@163.com"
RUN apt-get update
RUN apt-get install -y nginx
EXPOSE 80

命令:docker build [OPTIONS] DockerFile_PATH | URL | -

参数:
 –force-rm=false
​ –no-cache=false
​ –pull=false
​ -q,quite=false,构建时不输出信息
​ –rm=true
 -t,tag=“”,指定输出的镜像名称信息

4.镜像迁移

我们制作好的镜像,一般会迁移到其他机器上。Docker提供了几种镜像迁移分享给其他人的方式。推荐镜像迁移应该直接使用Docker Registry,无论是直接使用Docker Hub还是使用内网私有Registry都可以。使用镜像频率不高,镜像数量不多的情况下,我们可以选择以下两种方式。

4.1 上传Docker Hub

首先,需要在Docker Hub上申请注册一个帐号(人机验证时需要科学上网)。然后我们需要创建仓库,指定仓库名称。

在终端中登录你的Docker Hub账户,输入docker login,输入用户名密码即可登录成功。

查看需要上传的镜像,并将选择的镜像打上标签,标签名需和Docker Hub上新建的仓库名称一致,否则上传失败。给镜像打标签的命令如下。

docker tag /[:]

其中existing-image代表本地待上传的镜像名加tag,后面/[:]则是为上传更改的标签名,tag不指定则为latest。

接下来,我们利用push命令直接上传镜像。

docker push /:

我们已经上传成功。由于之前介绍的分层存储系统,我们这里是直接对已有的ubuntu镜像进行上传,只是重新打了标签,所以真正上传的只是变化的部分。

4.2 导出文件互传

Docker 还提供了 docker load 和 docker save 命令,用以将镜像保存为一个tar文件。比如这次我们将bertpytorch:latest这个镜像保存为tar文件。

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

😝朋友们如果有需要的话,可以联系领取~

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

2️⃣视频配套工具&国内外网安书籍、文档
① 工具

② 视频

image1

③ 书籍

image2

资源较为敏感,未展示全面,需要的最下面获取

在这里插入图片描述在这里插入图片描述

② 简历模板

在这里插入图片描述

因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值