Docker是什么?

 

 
Docker


Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

 

说人话

如果你玩过虚拟机的话,就知道可以在当前系统下通过 VMware、virtualBox 等安装一个新的系统,你可以定制这个虚拟机的CPU 内存 硬盘等参数,获得几乎媲美原生的体验。既然系统可以安装为一个虚拟机,那么聪明的人就有了一个大胆的想法,我可不可以把一个软件服务通过虚拟机装起来呢?于是docker应运而生,docker不仅可以安装centos Ubuntu等操作系统,也可以安装nginx mysql等服务,甚至可以部署个人编写的web服务。
通过虚拟机托管,这样启动了一个进程就相当于在物理机系统中启动了一个新的服务——进程即服务。由于win10自带hyperV虚拟机,因此windows上的docker能直接调用这个虚拟机。

为什么要用Docker?

在没有docker之前,如果我们要在windows上安装mysql、mongodb需要先下载这些软件,然后还要一步步点设置,并且注册到windows服务。并且根本不知道安装到什么地方(某些版本mysql不能指定安装位置,默认到C盘)。同时也会在控制面板内注册许多相关的插件。以后要卸载的时候可能还会有各种残留。作为一个强迫症患者这是万万不能忍受的。

现在有了docker,只需要一行代码就能拉取所需软件的镜像,然后配置一个容器就启动了。需要开发的时候就打开docker,服务便能够运行。占用的空间也小,性能和原生差异不大。增删查改都只需要一行代码就能完成。卸载起来也毫无残留。更重要的是,我可以同时有一个镜像的几个容器。即使我搞坏了一个,也可以用其他的容器。还能随时监测这些容器的磁盘占用等状态

安装及使用

获取Docker

https://hub.docker.com/?overlay=onboarding

 

 

安装完成后,你在桌面上就获得一个可爱的鲸鱼图标,双击以后右下角就会出现docker的图标,稍等会提升docker is running

修改配置

 
配置文件.png

首先修改使用的CPU数, docker占用资源不大,这里随意。内存根据自己的实际需求来。然后是关键的镜像位置,默认在C盘,强迫症患者还是移到了其他盘

 

 

 

配置加速镜像

Docker的默认官方仓库在国外,因此想在国内使用需要配置镜像加速器,首推阿里云。每个人分配的地址是不一样的,只需要注册阿里云用户就会得到一个加速地址了。

安装MySQL

 
终端.png

 

搞定后在终端输入docker就能获得以下信息

// 搜索redis的镜像信息
$ docker search redis
//查看是否成功
docker images

 

  

//启动
docker run -p 6379:6379 -d redis:latest redis-server

  

 

 

//验证是否启动成功
 docker ps

  

//连接redis
docker exec -ti d0b86 redis-cli

  

 

 

配置文件启动

docker run -p 6379:6379 --name redis --network commonNet --ip 172.18.0.4 -v /run/media/manjaro/other/workspace/docker/redis/conf/redis.conf:/etc/redis/conf/re
dis.conf -v /run/media/manjaro/other/workspace/docker/redis/data/:/data -d redis  redis-server /etc/redis/conf/redis.conf --appendonly yes

 参数解释说明:

  • -p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
  • --name myredis 指定该容器名称,查看和进行操作都比较方便。
  •  --network 指定我网络(commonNet是我自定义的网络)
  • --ip 指定容器使用的ip
  • -v 挂载目录,规则与端口映射相同。
    为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
    例: -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf 容器 /etc/redis/redis.conf 配置文件 映射宿主机 /usr/local/docker/redis/redis.conf。 会将宿主机的配置文件复制到docker中,修改配置文件时只需要修改外部的,重启容器即可
    重要: 配置文件映射,docker镜像redis 默认无配置文件。
  • -d redis 表示后台启动redis
  • redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis/redis.conf
    重要: docker 镜像reids 默认 无配置文件启动
  • --appendonly yes 开启redis 持久化
posted on 2019-10-31 16:57  博客园197  阅读(197)  评论(0)    收藏  举报