前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Docker系列】我的Docker入门历程

【Docker系列】我的Docker入门历程

作者头像
用户9913368
发布2022-08-13 15:27:56
发布2022-08-13 15:27:56
46000
代码可运行
举报
文章被收录于专栏:嘎嘎软件测试嘎嘎软件测试
运行总次数:0
代码可运行

一、前言

最近打开公众号,看标题就知道就是【云原生】、【Kubernetes 工程师】、【云原生工程师】相关内容了,虽然...但是我还是会点开来看一看,毕竟我也想学习一下哈哈。这块技术主要有Kubernetes和Docker,Kubernetes我正在熟悉中,所以接下来我主要分享我学习Docker的内容。

我接触Docker是在2020年初,那时候有个需求是自动化爬虫的,使用python在网页上点点点,用Docker搭建了一个vnc环境,当时觉得好牛逼啊,后面就慢慢了解了一些,但是因为没有实践机会,也就是浅尝即止。

再到今年2021年,我们质量组引进了MeterSphere开源自动化测试平台,对方提供使用Docker部署方式,一个命令就把整个服务部署好了,包括kafka,mysql,node等中间件,这个部署过程也太爽了,不需要一个一个去安装软件,这时候对Docker的“Build once,Run anywhere”有了更深的感悟。

后面计划引进Docker,我开始了真正实践Docker,过程中有些坎坷,但是最后服务部署成功,在浏览器打开应用页面的一瞬间,突然泪满盈眶,哈哈,也没有啦。当时一直协助我的运维还跑路了,还有协助我的组长博哥和开发黄老师在开会,那一刻无人分享我的喜悦,给我硬生生憋了一会儿,哈哈哈。

接下来讲讲我所学到的Docker基本知识吧。

二、Docker简介

1、Docker是什么

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

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

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

2、Docker三个基本概念

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

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

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

以上是Docker的简单介绍,更详细的可以参考【漫画】容器技术docker应用场景解析

开始看着还迷迷瞪瞪的,直到看了这句:容器与镜像的关系类似于面向对象编程中的对象与类。整个人醍醐灌顶,就是把代码跑起来?!

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

Docker

面向对象

容器

对象

镜像

镜像仓库Harbor

代码仓库GitHub

三、安装Docker及基本操作

接下来我们来讲讲如何安装Docker以及基本操作,包括启动Docker,拉取镜像,运行容器,查看镜像等。

代码语言:javascript
代码运行次数:0
运行
复制
# 1、安装docker
# 检查内核版本,必须是3.10及以上 uname ‐r ,如果不是需要 yum update升级软件包及内
yum install docker

# 2.1、检查docker是否安装成功
docker -v
docker run hello-world

# 3.1、启动docker
service docker start
# 3.2、开机启动docker
systemctl enable docker

# 4.1、设置从ustc拉取镜像
vim /etc/docker/daemon.json
{
 "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
# 4.2、需要重启docker服务
systemctl restart docker.service

# 5、查看正在运行的容器
docker ps -a

# 6.1、安装Tomcat
# 以守护进程后台方式启动容器:docker run -d --name 容器名称 镜像
# 访问地址:http://ip地址:8888/ (ens33)
docker search tomcat                                       #搜索tomcat
docker pull tomcat                                         #拉取tomcat镜像
docker run -d --name mytomcat -p 8888:8080 tomcat:latest   #启动tomcat容器,并做端口映射
docker ps
# 6.2、进入tomcat容器
docker exec -it 837b8ca7683b /bin/bash
# 6.3、无法访问Tomcat 注:ll无法使用,只能使用ls
# 访问问不到主页的原因是因为存放主页的文件夹webapps是空的,docker的tomcat将这些文件放在了webapps.dist文件夹中,只需要将空的webapps文件夹删除,然后将 webapps.dist重命名为webapps就可以了

# 7、查看docker镜像
docker images

四、安装Harbor

Harbor是一个镜像仓库,类似于代码托管平台github。

代码语言:javascript
代码运行次数:0
运行
复制
wget -c https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.2-rc1.tgz

tar -zxvf harbor-offline-installer-v1.8.2-rc1.tgz -C /wmh/software/

#服务启动完成自动创建nginx和db等容器服务
cd harbor && ./install.sh

#访问Harbor
http://ip地址/harbor/sign-in

#重启Harbor
cd /usr/local/harbor
./prepare
docker-compose down -v
docker-compose up -d  (如果没修改配置文件,只执行该命令即可,未验证)

#注:得先进入到有docker-compose.yml才能执行docker-compose ps
cd /usr/local/harbor && docker-compose ps

#登陆到Docker Hub
docker login -u 用户名 -p 密码

#将本地的镜像上传到镜像仓库,要先登陆到镜像仓库docker push
docker push myapache:v1

五、Docker图形化工具Portainer

我们可以用Portainer来管理Docker环境,具体使用方式可参考如下这篇文章。

吊炸天的 Docker 图形化工具 Portainer,必须推荐给你!

代码语言:javascript
代码运行次数:0
运行
复制
首先下载Portainer的Docker镜像;
docker pull portainer/portainer

然后再使用如下命令运行Portainer容器;
docker run -p 9000:9000 -p 8000:8000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d portainer/portainer

第一次登录的时候需要创建管理员账号,访问地址:http://ip地址:9000/

六、总结

“Build, Ship and Run”

搭建、发送、运行

“Build once,Run anywhere“

搭建一次,到处能用

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嘎嘎软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档