🚢🚢🚢云服务器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

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

相关推荐
哆木2 小时前
docker快速安装(环境CentOS7)
linux·运维·服务器·docker
xiaodaidai丶2 小时前
Docker的基本认识和常见命令以及场景介绍
docker·容器
袖清暮雨4 小时前
Docker基本讲解及演示
docker·容器·eureka
百鸣8 小时前
Docker Desktop Windows 目录介绍
运维·docker·容器
IT后浪10 小时前
Docker修改Postgresql密码
docker·postgresql·容器
TyCoding10 小时前
DockerHub无法拉取镜像怎么办
java·docker·语言模型·chatgpt
冰淇淋@13 小时前
Docker安装ELK(简易版)
elk·docker·jenkins
ascarl201013 小时前
Docker配置正向代理
运维·docker·容器
计算机痴14 小时前
docker从0到1 部署gitlab 纯干货
docker·容器·gitlab
june_chao66614 小时前
centos7单机安装docker和k8s
docker·容器·kubernetes