Docker搭建与使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker搭建与使用相关的知识,希望对你有一定的参考价值。

参考技术A

docker 命令与 Docker 引擎通讯之间通过 UnixSocket ,但是能够有权限访问 UnixSocket 的用户只有 root 和 docker 用户组的用户才能够进行访问,所以我们需要建立一个 docker 用户组,并且将需要访问 docker 的用户添加到这一个用户组当中来。

这里使用的是 阿里云提供的镜像加速 ,登录并且设置密码之后在左侧的 Docker Hub 镜像站点 可以找到专属加速器地址,复制下来。
然后分开执行以下命令:

之后重新加载配置,并且重启 Docker 服务

这里推荐使用 Portainer 作为容器的 GUI 管理方案。官方地址: https://portainer.io/install.html
安装命令:

访问你的 IP:9000 即可进入容器管理页面。

名字为镜像库中的镜像名,若出现权限问题报错,前面加上sudo即可。

参数说明:
-p 3306:3306 :将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/log:/var/log/mysql :将配置文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql :将日志文件夹挂载到主机
-v /mydata/mysql/conf:/etc/mysql :将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root :初始化root用户的密码

验证,查看docker下的所有进程:docker ps

docker安装的mysql,相当于linux系统中单开了一个linux专门用来安装mysql。
-p 3306:3306 :将容器的3306端口映射到主机(vagrant开启的虚拟机)的3306端口。
日志也是将经常变动数据挂载到外部linux文件夹下。

  上面已经说到,将mysql容器中的配置文件挂载到本机中,所以直接修改本机目录下的配置文件即可。

防止挂载时 redis.conf找不到而在conf文件夹下再次创建名为redis.conf的文件夹,所以预先创建。

mysql之前是进入容器,现在我们直接进入客户端进行操作redis

贼好用啊,还有提示。

docker restart redis 重启redis容器后,发现之前的数据都丢失了,因为保存在内存中。所以我们需要配置持久化。
因为之前已经将容器配置文件挂载到本机目录下,所以直接修改本机redis.conf即可。

重启验证,OK。

Docker环境搭建与使用:docker的简介与架构以及安装docker

文章目录

Docker环境搭建与使用

【参考网址】

【官网】

一、Docker简介

1、什么是Docker

  • Docker是一个开源的应用容器引擎,基于Go语言 并遵从Apache2.0协议开源。

  • Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。

  • 容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhoneapp),更重要的是容器性能开销极低。

Docker17.03版本之后分为CECommunity Edition: 社区版) 和EEEnterprise Edition: 企业版),本次内容使用ce版进行学习。

2、优点

  • 快速,一致地交付您的应用程序

    Docker允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。

    容器非常适合持续集成和持续交付(CI/CD)工作流程。

  • 响应式部署和扩展

    Docker是基于容器的平台,允许高度可移植的工作负载。Docker容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。

    Docker的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。

  • 在同一硬件上运行更多工作负载

    Docker轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。

    Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。

二、Docker 架构

1、三个基本概念

Docker包括三个基本概念:

  • 镜像(Image):Docker镜像(Image),就相当于是一个root文件系统。比如官方镜像ubuntu:16.04 就包含了完整的一套Ubuntu16.04最小系统的root文件系统。

  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。

Docker容器通过Docker镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker面向对象
容器对象
镜像

2、运行原理

docker_host是一个物理或者虚拟的机器用于执行Docker守护进程和容器。

操作用户可以通过Docket客户端完成从Registry通过命令下载镜像到docker_host。然后创建容器并运行容器。同时也可以通过Dockerfile文件来构建新的镜像,并将构建的镜像上传到远程仓库。

一个Docker Registry中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。

通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签>的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以latest作为默认标签。

repository 的完整格式为:[registry-host]:[port]/[username]/xxx

Docker远程仓库是开源的,我们还可以创建本地仓库,将自已创建镜像上传到本地仓库。

三、安装Docker

【参考地址】

1、由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:

$ sudo apt-get remove docker docker-engine docker-ce docker.io

2、更新apt包索引:

$ sudo apt-get update

3、安装以下包以使apt可以通过HTTPS使用存储库(repository):

$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

4、添加Docker官方的GPG密钥:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

5、使用下面的命令来设置stable存储库:

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

6、再更新一下apt包索引:

$ sudo apt-get update

7、安装最新版本的Docker CE:

$ sudo apt-get install -y docker-ce

8、查看docker服务是否启动:

$ systemctl status docker

若未启动,则启动docker服务:

$ sudo systemctl start docker

9、经典的hello world

$ sudo docker run hello-world # hello-world是一个测试镜像,直接可以运行

也可以下载centos容器镜像,然后使用命令输出指定文字

docker run ubuntu:20.04 /bin/echo '你好世界'

说明

  • dockerDocker 的二进制执行文件
  • run: 与前面的 docker 组合来运行一个容器。
  • ubuntu:20.04:指定要运行的镜像。Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker就会从镜像仓库DockerHub下载公共镜像并创建容器执行。
  • /bin/echo “你好世界”: 在启动的容器里执行的命令

10、将用户加入的docker组中

sudo usermod -aG docker $USER  # $USER获取当前用户
newgrp docker # 需更新docker用户组

以上是关于Docker搭建与使用的主要内容,如果未能解决你的问题,请参考以下文章

Docker私有仓库的搭建与使用

docker使用与nginx搭建

Docker1.12.1之swarm集群搭建与使用

Docker简介与搭建

第三十九章 gitlab搭建与使用(docker版)

docker 私有仓库之Harbor搭建与使用