服务计算:玩转docker容器技术

服务计算:玩转docker容器技术

一、什么是docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端
  2. Docker Daemon守护进程:Daemon是Docker的守护进程,Docker Client通过命令行与Docker Damon通信,完成Docker相关操作
  3. Docker Image镜像:docker Image概述
  4. DockerContainer容器:Container是在原先的Image之上新加的一层,称作Container layer,这一层是可读可写的(Image是只读的)[Container简介](https://blog.csdn.net/qq_17545293/article/details/80822310)

二、准备docker环境

1、按照官方指引部署环境

  • 环境:CentOS Linux 7
  • 依照文档进行安装:获取Docker Engine
    使用set up repository的方法
  • 通过运行hello-world 映像来验证是否正确安装了Docker Engine-Community 。$ sudo docker run hello-world
    在这里插入图片描述
  • 此时运行docker run hello-world会表示权限不足。
    在这里插入图片描述
    由文档可知,docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。
    解决方法:docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
    sudo groupadd docker     #添加docker用户组
    sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
    newgrp docker     #更新用户组
    docker ps    #测试docker命令是否可以使用sudo正常使用
    

此时再次运行docker run hello-world
在这里插入图片描述

2、检查docker安装版本

$ docker version
在这里插入图片描述

三、docker基本操作

1、运行镜像

$ docker run -it ubuntu bash其中-it 参数,通过终端与进程(容器)交互,stdin,stdout,stderr定向到 TTY。

2、基本操作
  • 获得帮助:$ docker --help
    在这里插入图片描述
  • 获取本地镜像库内容:$ docker images相当于$ docker image ls
    在这里插入图片描述
  • 获取容器:$ docker ps相当于$docker container ls,-a表示所有容器,不加则表示正在运行的容器。
    - 继续运行原容器并进入:$ docker restart <CONTAINER NAME> + docker attach <CONTAINER NAME>在这里插入图片描述

四、MySQL与容器化

1、拉取MySQL镜像
  • 发现拉取镜像的速度太慢了, 因为默认是从Docker Hub拉取镜像,而国内从 Docker Hub 拉取镜像有时会遇到困难。所以需要修改镜像源(此处修改为Azure 中国镜像):
$ sudo vim /etc/docker/daemon.json
{
  "registry-mirrors":["https://dockerhub.azk8s.cn"]
}
$ systemctl daemon-reload
$ systemctl restart docker
  • 拉取MySQL镜像:$ docker pull mysql:5.7
    在这里插入图片描述
2、使用MySQL容器
  • 启动服务器:
    $ sudo docker run -p 8085:8085 --name mysql2 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
    此处的端口8085是自己设置的,按照老师ppt的3306端口会显示被占用。如下图。
    在这里插入图片描述
    如果出现这种情况,首先$ docker ps -a,找到刚才安装的ContainerID,然后执行$ docker rm <CONTAINER_ID>之后再重新启动(换一个端口)即可。结果如下图
    在这里插入图片描述
  • 启动MySQL服务端:
    在这里插入图片描述
  • 数据库文件存储位置:
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker容器技术是一种轻量级的虚拟化技术,可以快速搭建和部署应用程序。每天花5分钟玩转Docker容器技术,可以充分利用碎片化的时间,提高工作和学习效率。 首先,我们需要了解Docker容器技术的基本概念和原理。可以每天读取Docker容器的相关书籍或者阅读官方文档,逐步掌握其中的关键概念和技术细节。 接下来,在学习过程中,可以每天尝试使用Docker命令行工具来进行实践。比如,运行一个简单的Hello World容器,下载一个Docker镜像并在容器中运行一个简单的应用程序等。通过实际操作,可以更好地理解Docker容器技术的工作原理。 此外,深入学习Docker容器技术的最好方式之一是参与项目实战。可以每天尝试运行一些具有挑战性的容器化项目,比如部署一个多容器的Web应用程序,搭建一个容器化的开发环境等。通过实际的项目实践,可以更加深入地掌握和应用Docker容器技术。 另外,要善于利用网络资源,比如每天浏览相关的Docker容器技术博客、论坛或者社区,了解最新的技术发展和应用案例。可以关注Docker官方博客或者加入Docker用户社区,与其他Docker技术爱好者交流学习经验。 最后,坚持每天花5分钟玩转Docker容器技术,持之以恒。通过每天的实践和学习,逐渐提升自己的技术能力,深入理解和运用Docker容器技术,为个人的工作和学习带来便利和提升。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值