sheng的学习笔记-docker部署,原理图,命令,用idea设置docker

部署文章目录:目录

目录

基础知识

什么是docker

docker核心概念

docker架构及原理

Docker和虚拟机 

docker命令

下载和安装docker

windows:

DockerToolbox在Win7上的安装和设置

1、Docker Toolbox安装图文教程

启动

利用Xshell登录

 更改虚拟磁盘存储位置

macbook:

​编辑

更改镜像仓库地址

docker命令

dockerFile的指令详解


基础知识

什么是docker

官网:

Docker Docs: How to build, share, and run applications | Docker Documentation
Docker 是一个基于go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

开发环境,测试环境,生产环境不一致,会出现开发环境可用,但其他环境出现问题的情况,使用docker 可以解决这一问题

减少各应用之间的相互影响,比如A应用需要修改环境变量,会影响B应用,如果在两个容器中就没影响了

  • 从下面的logo中我们可以看到,一条鲸鱼载着一堆集装箱。在集装箱没有出现之前,运送的货物全部都堆在一条船上运输,很容易造成货物损坏,比如我运送一批货物,里面有水果,化学物品,木头。当这批货物堆在一条船上一起运送的时候,有可能会发生化学物品泄露导致水果被污染,或者木头松动导致砸坏化学物品。这个时候为了避免货物损失,会安排多条船去运送这批物资,但是这样又会造成运送成本的增加,这个时候就发明了集装箱,把不同的货物通过集装箱隔离开。这样所有的货物放在一条船上,就不会出现互相污染的情况了。
  • 那么docker是什么呢?docker就是那头鲸鱼货轮+集装箱的集合体,它可以将货物进行分类包装进集装箱,并提供一条存放集装箱的货轮。这样,通过想把集装箱送往哪个地方就送往哪个地方。

913275-20220802033443887-783620713.png

docker核心概念


docker三大核心概念:镜像 Image、容器 Container、仓库 Repository

  1. 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  2. 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。基于镜像可以创建容器,同一个镜像可以创建多个容器;
  3. 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。镜像存放在仓库中,可以从仓库中拉取。

v2-a27cdebc82abd9ab9624b0e68fc7025b_720w.jpg

docker架构及原理

v2-86a93e02587919405c0bd8eda245a1b1_720w.jpg


 Docker 使用客户端-服务器 (**C/S**) 架构模式,使用远程API来管理和创建Docker容器。 架构上可以分为客户端和服务端; **Docker Daemon**是docker的守护进程; **containerd**是容器运行的进程,是实现容器的核心; 客户端通过内部的API和服务端的守护进程进行交互,守护进程再通过**containerd**分发到各个容器;

Docker和虚拟机 

  说到Docker就要提到虚拟机了,在Docker流行之前,虚拟机是开发人员部署开发环境的普遍方法。但是虚拟机的缺点是消耗太多不必要的资源和内存,速度也很慢。从一张图就可以看出为什么Docker会比虚拟机更快,更方便。

     20170725114514574.png 

    可以看到Docker和VM的区别,是没有Guestos,而是用Docker Engine代替。虚拟机的Guest OS即为虚拟机安装的操作系统,它是一个完整的操作系统内核,而Docker就显得简练很多,docker Engine可以简单看成对Linux和NameSpace,Cgroup,镜像管理文件的系统操作的分装。Docker没有和虚拟机一样利用一个完全独立的Guest OS 实现环境隔离,它利用的是目前Linux内核本身支持的容器实现资源和环境隔离。

docker命令

 其他命令参考docker命令大全:Docker 命令大全 | 菜鸟教程

下载和安装docker

windows:

DockerToolbox在Win7上的安装和设置

为什么使用Docker Toolbox

Docker在Windows上使用有两种方式,一是利用VirtualBox建立linux虚拟机,在linux虚拟机中安装docker服务端和客户端,二是利用Windows的Hyper-v虚拟化技术,直接在Windows上安装docker服务端和客户端。WIndows7不支持Hyper-v,所以只能采用Docker Toolbox的方式使用Docker。下载地址:https://docs.docker.com/toolbox/overview/

安装过程很简单,保持默认选项,直接【next】即可。VirualBox和Git如果已经安装,也可以不选

如果已经安装了virtualbox,建议先卸载自己的virtualbox,在这里重新安装,否则启动docker时会报错

1、Docker Toolbox安装图文教程

注意:
1、在第四张教程图片中,可以不勾选Install VirtualBox with NDISS。
2、过程中,需要安装一个串行设备,切记点击安装!

安装完成后,桌面上会多出3各图标,如下。其中VirtualBox提供了linux虚拟机的运行环境,Docker Quickstart Terminal用于快速介入linux虚拟机,提供命令行交互,Kitematic是docker GUI很少用到。

启动

第一次运行Docker Quickstart Terminal时会进行Docker环境的初始化,会在VirtualBox中自动创建名字为【default】的linux虚拟机

利用Xshell登录

Docker Quickstart Terminal使用起来不方便,可以使用XShell进行SSH登录Docker环境(其实就是远程访问default linux虚拟机)。

通过在PowerShell或cmd终端中执行【docker-machine ls】命令,可以看到虚拟机的地址,本机是192.168.99.100。

default虚拟机的默认用户名和密码

用户名:docker
密码: tcuser

 登录成功页面:

 更改虚拟磁盘存储位置

虚拟机的默认存储位置是C:\Users\Administrator\.docker\machine\machines ,后期docke镜像文件会不断增加,为了给系统盘减负,最好将磁盘移动到其他位置。

  •  首先通过PowerShell或cmd终端中执行【docker-machine stop default】命令停止default虚拟机

  • 通过VirtualBox【管理】-》【虚拟介质管理】界面对虚拟磁盘进行复制

需要注意虚拟磁盘类型的选择

    

  •  为虚拟机添加新复制的虚拟磁盘,删除之前的dick

macbook:

从官网下载  Install Docker Desktop on Mac | Docker Docs

更改配置,在任务栏点击 Docker Desktop 应用图标 -> Perferences,在左侧导航菜单选择 Docker Engine,在右侧像下边一样编辑 json 文件。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了

"registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://docker.mirrors.ustc.edu.cn"
  ] 

更改镜像仓库地址

  docker默认的镜像仓库地址是https://hub.docker.com/,但国内的下载速度太过缓慢,最好使用国内镜像,比如阿里云。

  首先需要注册阿里云账号,然后在https://cr.console.aliyun.com/页面的左侧可以看到【镜像加速器】选项

  在powershell或cmd中通过 【docker-machine ssh default】命令登录虚拟机(或使用设置好的XShell连接),执行如下命令:

1

sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile

  然后重启default 

1

docker-machine restart default

修改之后,用docker info命令查看, Registry Mirrors所配置的镜像地址

2021031615291063.png

20210316153516726.png

 idea集成docker

打开Settings设置界面
在这里插入图片描述
选择Build Exection Deployment=>Docker
点击+号,创建一个Docker连接,指定Docker Machine为default,默认的虚拟机。
点击右下角的Apply
在这里插入图片描述
底部出现Docker工具栏

20191111153340623.png

在Images右键Pull Image拉取镜像

20191111153404429.png

在Repository中输入指定的镜像名,比如httpd,mysql,nginx等名称。
latest是Tag中是最新的Tag版本。

20191111153423958.png

20191111153450473.png

拉取成功之后,右键Create container

20191111153633670.png
设置端口映射

由于此处选择了mysql,所以要设置mysql的密码。

20191111155028530.png

 20191111155057108.png

docker命令

docker stats <容器 ID>

该命令可以查看容器资源的使用情况,包括 CPU 占用率、内存使用量、网络使用量等。

查看虚拟机:docker-machine ls

进入虚拟机:docker-machine ssh 虚拟机名称

退出虚拟机:exit

启动虚拟机:docker-machine start 虚拟机名称

停止虚拟机:docker-machine stop 虚拟机名称

重启虚拟机:docker-machine restart 虚拟机名称

删除虚拟机:docker-machine rm 虚拟机名称

查看虚拟机环境信息:docker-machine env 虚拟机名称

注:若进入虚拟机,对虚拟机的启动、停止、重启、删除操作,需先退出虚拟机
 

dockerFile的指令详解

 

docker迁移

docker迁移分为容器迁移镜像迁移

容器迁移和镜像迁移的区别:

1)容器(export 导出、import导入) :

  • 是将当前容器 变成一个新的镜像,导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag <LAYER ID> <IMAGE NAME>);
  • 从容器(container)中导出tar文件
  • 若是在启动容器后,容器内容有变化,需要备份,则使用export、import。

2)镜像(save保存、load加载):

  • 是复制的过程,没有丢失镜像的历史,可以回滚到之前的层(layer)。(查看方式:docker images --tree)
  • 镜像导出的 tar 文件比容器导出文件大。
  • 从镜像(images)中导出
  • 若是只想备份images,使用save、load即可

容器迁移

把已经制作好的容器,迁移到别的服务器上,比如,我有个MYSQL数据库,里面有个表,表里有数据,可以用MYSQL自带的数据迁移,也可以使用docker的容器迁移方式

容器导出

docker export [-o|--output[=""]] CONTATINER

或者   docker export 容器id/name >文件名.tar

 

我的命令是:

docker export 24624966d8c8 >lzs_mysqlv1.tar

其中可以通过-o来指定导出的tar文件名,也可以直接通过重定向来实现。

通过SCP或者sftp等方式,将容器拷贝到目标服务器上

容器加载

docker import [-c|--change[=[]]] [-m|--message[=MESSAGE]] file|URL|-[REPOSITORY[:YAG]]

 我的命令是

docker import /d/DB/lzs_mysqlv1.tar lzs_mysql:1.0

其中-c 选项可以在导入的同时执行对容器进行修改的Dockerfile指令(网络等修改) 

此外,也可以通过指定 URL 或者某个目录来导入,例如

$sudo docker import http://example.com/exampleimage.tgz example/imagerepo

加载镜像成功,通过镜像生成容器,MYSQL还需要迁移数据文件,此部分没有

 

镜像迁移 

镜像导出

docker save -o output.tar ID/NAME:VERSION

docker save > output.tar ID/NAME:VERSION

镜像加载

docker load -i output.tar

docker load < output.tar

其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息

参考文章:

https://www.cnblogs.com/canger/p/9028723.html

Docker Toolbox:Docker Toolbox的简介、安装、使用方法之详细攻略_dockertoolbox_一个处女座的程序猿的博客-CSDN博客

Windows7安装使用Docker发布Spring boot项目详细_王绍桦的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值