🚢🚢🚢云服务器Docker快速通关——从部署到实战

👇前言

国内常见的云平台有: 阿里云腾讯云华为云等等...
我这边是用的华为云的Flexus应用服务器L实例应用宝塔Ubuntu zz.04.2 LTS

Linux宝塔查看服务器是centos还是Ubuntu还是debian,用这个cat /etc/*release*命令行。

我的是宝塔的ubuntu系统,所以来到docker的manual的开发文档的engine下面,找到ubuntu的安装教程,

💯安装Docker ------ 部署

添加Docker官方的GPG秘钥

第一步:sudo apt-get update

设置Docker 的 apt 存储库。也就是在首次安装Docker引擎之前,需要设置一下Docker的存储库。之后呢,就可以从存储库安装和更新Docker了。

js 复制代码
sudo apt-get update

这个是ubuntu系统的用来(1)连接ubuntu软件源,(2)、检查可用的软件包更新、(3)获取相关信息。


📝Ubuntu DNS 配置报错以及解决记录 - Temporary failure resolving -> 报错原因排查
报错❌❌❌:出现这个错误Temporary failure resolving 'repo.huaweicloud.com'. 报错如下:

问题解决: 意思就是说出现了临时的解析错误。

一般发生这种错误,就是表明系统无法将域名转换为IP地址。当我们用repo.huaweicloud.com,DNS服务器就会去找相应的IP地址。然后报这个错就是代表DNS查询失败,导致无法解析域名。

所以说如果要解决这个问题就是解决DNS的问题,要么是网络不行了什么网站都查不出,要么就是DNS配置不正确。有两种原因,该网址有问题。解决方案:第一,换网址换镜像,或者直接到官网下载到本地,再导入云服务器上;第二,需要配置正确的DNS。

一一排查:

(1)、ping google

js 复制代码
ping www.google.com

如果ping不通,就说明访问不了一些国外的东西,即使你本机上有🪜,云服务器端那边我们本地也没有办法共享过去;

(2)、再来 ping baidu

js 复制代码
ping www.baidu.com

如果都ping不通,就说明DNS配置有问题。

修改resolv.confLinux系统的DNS解析配置文件,命令行如下:

js 复制代码
vim /etc/resolv.conf
js 复制代码
nameserver 8.8.8.8

或者

nameserver 144.144.144.144

// 修改`nameserver`为`8.8.8.8`或者是`114.114.114.114`, 或者两者都可以写上去,按顺序去找这些公共的DNS的。

📚DNS配置原理说明

其中,8.8.8.8是谷歌公共的DNS的ip地址之一; 144.144.144.144是中国电信的公共DNS的ip地址之一。另外, Cloudflare的是1.1.1.1, OpenDNS的是208.67.222.222nameserver 8.8.8.8 代表进行域名解析时可以使用google公共的DNS服务器的ip地址去进行域名解析。
当然,可以同时配多个,按书序去连接这些DNS服务器,直到找到可用的服务器或者解析成功为止。然后重新去ping一下我们想要下载的资源网址域名,或者ping谷歌和百度,就是可以访问正常了。

第二步:sudo apt-get install ca-certificates curl

安装ca-certificatescurl软件包

第三步:sudo install -m 0755 -d /etc/apt/keyrings

创建一个名为/etc/apt/keyrings目录,并给这个目录读写和操作的权限。

这边我们统一使用一下国内的docker源------国内阿里云镜像,切换的命令行配置如下:

js 复制代码
sudo add-apt-repository "deb http://mirrors.aliyun.com/docker-ce/linux/ubuntu/docker-ce.repo $(lsb_release -cs) stable"

第四步:下载Docker在Ubuntu的安全密钥文件并保存

js 复制代码
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

将Docker软件源添加到Apt源列表

js 复制代码
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable"
  • echo: 用于在终端输出指定的文本或者字符串;
  • deb:用于定义Debian或者Ubuntu系统软件源;
  • arch=$(dpkg --print-architecture): $()这种写法就是
bash 复制代码
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

💯Ubuntu安装docker成功

输入docker version 查看docker是否安装成功,并且查看版本version等信息。

💯玩转docker ------ 实战

既然我们在云服务器端安装完成docker了,我们可以在这上面做一些好玩有趣的事,比如:

  • 在云服务器上部署自己的vue或者react项目、自己的博客网站
  • 部署自己的ci/cd 一套自动化构建和自动化部署流程
  • 等等...

我们先来看看docker hub这个网站, docker hub 就是一个用来存和共享docker镜像的这么一个平台,像前端的npm网站,像php的packagist网站等等,我们可以类比学习,这样想就可以拉近学习的距离,不会觉得这个东西远在天边而很快放弃。

镜像操作

比如我们拉一下nginx的景象,使用命令docker pull nginx:

如果其中拉镜像发生报错,❌ 错误如下:docker error pulling image configuration: download failed after attempts=6: dial tcp xxx:xxx: i/o timeout,那就说明可能是网络有问题,可能是魔法网络国内外等等的问题导致下载超时的问题,那么我们可以设置:

解决 ✅: (1)、使用命令sudo mkdir -p /etc/docker,去创建/etc/docker/目录; (2)、使用命令sudo vim /etc/docker/daemon.json, 创建并配置docker镜像配置文件, 文件内容如下:


拉完nginx镜像

js 复制代码
docker pull nginx

查看镜像列表

js 复制代码
docker images

比如: docker search nginx

下载 docker pull

比如: docker search nginx, 如果后面没加版本,它会默认帮我们拉最新的镜像,安装指定版本就是docker pull nginx:1.23 通过冒号:这种加版本。由于我之前拉过了,所以它表示我已经是成功拉群了最新的nginx镜像了。

当然可以同时安装不同版本的同一镜像。

列表 docker images

docker images : 查看所有安装的镜像

删除 docker rmi

比如: docker rmi xxx, xxx代表镜像id, 这个镜像id通过docker images获得。或者通过docker rmi nginx:latest 或者 docker rmi nginx:1.26.0

容器操作

运行 docker run

docker run -d -name mynginx nginx

指定端口跑镜像

打开ip地址便可以看到:

查看 docker ps

停止 docker stop

  • 停止正在运行的容器,docker stop mynginx
  • 强制停止, docker stop --force mynginx

启动 docker start/restart

  • 有个容器已经停止了,可以用start去启动, docker start mynginx
  • 有个容器已经开跑了,想要对它进行重启, docker restart mynginx

删除 docker rm

进入 docker exec

在容器中执行命令,docker exec it mynginx /bin/bash

js 复制代码
// 在mynginx的容器中启动一个交互的bash shell
docker exec -it mynginx /bin/bash

// 进入Nginx的默认html文件目录
cd /usr/share/nginx/html/

// 编辑index.html文件
vi index.html

// 输出Hello,Docker
echo "<h1>Hello, Docker.</h1>" > index.html

状态 docker stats / 日志 docker logs

  • 查看容器的实时资源使用情况,如CPU、内存、磁盘等,docker stats mynginx
  • 查看容器的实时日志,docker logs mynginx

推送 docker push

推送我们自己本地的镜像到docker hub,就像发布npm包一样。在别的机器,或者别人可以拉下来使用。

js 复制代码
// 登录
docker login

// 标记要推送的镜像
docker tag mynginx:v1.0 your_remote_repostitory/mynginx:v1.0

// 推送镜像到docker hub官方仓库
docker push your_remote_repostitory/mynginx:v1.0

☎️ 希望对大家有所帮助,如有错误,望不吝赐教,欢迎评论区留言互相学习。感谢阅读,祝您开发有乐趣。

相关推荐
小夏卷编程1 天前
Ubuntu 20.04.4 宝塔 docker showdoc v3.2 更新到v3.7.3
运维·docker·容器
JEECG低代码平台1 天前
JeecgBoot低代码平台 Docker 部署 OnlyOffice 文档服务完整指南
低代码·docker·容器
生活爱好者!1 天前
NAS帮我找回童年的快乐!部署 小游戏
运维·服务器·docker·容器·娱乐
自在极意功。1 天前
nginx和docker面试题
运维·nginx·docker
不做超级小白1 天前
执行docker命令时自动启动Docker Desktop?一个小工具让开发体验更丝滑
windows·docker
222you1 天前
Ubuntu当中的Docker安装和镜像管理
ubuntu·spring cloud·docker
心易行者1 天前
别再说“在我的机器上能跑”了!Docker 入门指南,专治各种环境不服
运维·人工智能·docker·容器
zhim001 天前
【保姆级教程】使用 Docker 部署 PostgreSQL + pgvector(含踩坑指南)
linux·docker
进击切图仔1 天前
ROS 跨机通信与 Docker 多机环境搭建
运维·docker·容器
xiaoye37081 天前
docker 迁移mysql容器
mysql·docker