导航:首页 > 配服务器 > 阿里云服务器怎么配置docker

阿里云服务器怎么配置docker

发布时间:2022-10-03 05:38:54

① 如何在阿里云主机上安装docker

如何使用注册阿里云帐号,选择购买您需要的cdn套餐登录阿里云管理控制台进行cdn服务管理,如:添加域名或bucket进行加速,您还可以通过api来管理添加域名加速后,您将得到一个cdn的域名解析服务的域名在您的dns服务商的配置服务中

② 阿里云服务器ecs怎么重新配置环境

由于Web网站需要搭建测试模板使用,会造成网站建设环境混乱。需要重置ECS服务器系统的状态,将ECS服务器恢复到未安装Web网站时的状态。

1、登录云服务管理控制台,选择云服务ECS,单击实例,进入实例页面。

2、在实例列表页面,选择更多磁盘和镜像,单击“更换系统盘”或 “重新初始化磁盘”, 将ECS服务器重置为初始状态。

③ 阿里云 上的docker 怎么用

包括三部分:
从Docker Hub或者其他镜像源安装Docker镜像
从Image file安装Docker镜像
从Docker file制作Docker镜像

查找Docker镜像

安装Docker镜像的第一步,是查找你需要的Docker镜像列表,键入:
docker search mysql

如果出现权限问题,请在最前面加入sudo:
sudo docker search mysql

查询返回一个列表:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 2981 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Crea... 194 [OK]
centurylink/mysql Image containing mysql. Optimized to be li... 46 [OK]
sameersbn/mysql 36 [OK]
jdeathe/centos-ssh-mysql CentOS-6 6.8 x86_64 / MySQL. 8 [OK]
appcontainers/mysql Centos/Debian Based Customizable MySQL Con... 8 [OK]
marvambass/mysql MySQL Server based on Ubuntu 14.04 6 [OK]
drupaldocker/mysql MySQL for Drupal 2 [OK]
azukiapp/mysql Docker image to run MySQL by Azuki - http:... 2 [OK]
yfix/mysql Yfix docker built mysql 2 [OK]
alterway/mysql Docker Mysql 2 [OK]
frodenas/mysql A Docker Image for MySQL 2 [OK]
andreluiznsilva/mysql A extension of the offical MySQL container... 1 [OK]
phpmentors/mysql MySQL server image 1 [OK]
sin30/mysql MySQL images with my own config files. 1 [OK]
tozd/mysql MySQL (MariaDB fork) Docker image. 0 [OK]
nanobox/mysql MySQL service for nanobox.io 0 [OK]
...

列表包含了所有的MySQL镜像,其中:
NAME字段是镜像的名字
DESCRIPTION字段是对镜像的简单描述
STARS数量反映了用户的喜爱程度
OFFICIAL字段如果是OK,代表了这个镜像是官方提供的,可以信任
AUTOMATED字段如果是OK,代表了这个镜像是基于公开的脚本制作的,可以信任
如果OFFICIAL和AUTOMATED都不为OK,那使用的时候需要额外小心了,这类镜像中可能包含恶意软件,不过对于个人非敏感数据还是可以使用的。

此外,你也可以通过访问https://hub.docker.com/,通过Web来搜索你需要的镜像。
下载Docker镜像

当你找到合适的镜像后,可以通过:
docker pull [REGISTRYHOST/][USERNAME/]NAME[:TAG]

来进行下载,方括号中的是可选项:
docker pull mysql

导出Docker镜像

你可以将本地镜像导出为文件,如我们刚才下载的MySQL镜像:
docker save -o mysql.tar mysql

将我们的MySQL镜像导出为mysql.tar.
导入Docker镜像

有导出就有导入,导入的命令是:
docker load -i mysql.tar

将我们的MySQL镜像导入。
删除Docker镜像

为了节约磁盘空间,有时候我们需要删除不需要的Docker镜像文件,首先查看我们拥有的Docker镜像文件:
docker images

然后删除不需要的镜像,释放磁盘空间:
docker rmi [REGISTRYHOST/][USERNAME/]NAME[:TAG]

通过Docker File编译Docker镜像

制作Docker File我们放在后面再讲,假设你有一个名为Dockerfile的文件,编译制作Docker的命令是:
docker build -f Dockerfile .

成功后将在当前路径下制作出一个Docker镜像文件。
Summary

我们简单的介绍了Docker镜像的使用方法。通过此实战,你应该对Docker镜像有了更深入的体会。
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索docker , 镜像 , docker使用镜像 , 删除镜像 查找镜像 docker 删除镜像、docker 镜像、docker 国内镜像仓库、docker hub 国内镜像、docker 镜像仓库,以便于您获取更多的相关知识。

④ 如何在阿里云主机上安装docker

你好,
如果你是centos7的话,Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:

[root@localhost ~]# yum install docker

⑤ RabbitMQ 进阶- 阿里云服务器部署RabbitMQ集群

如果RabbitMQ集群只有一个broker节点,那么该节点的失效将导致整个服务临时性的不可用,并且可能会导致message的丢失(尤其是在非持久化message存储于非持久化queue中的时候)。可以将所有message都设置为持久化,并且使用持久化的queue,但是这样仍然无法避免由于缓存导致的问题:因为message在发送之后和被写入磁盘并执行fsync之间存在一个虽然短暂但是会产生问题的时间窗。通过publisher的confirm机制能够确保客户端知道哪些message已经存入磁盘,尽管如此,一般不希望遇到因单点故障导致服务不可用。

如果RabbitMQ集群是由多个broker节点构成的,那么从服务的整体可用性上来讲,该集群对于单点失效是有弹性的,但是同时也需要注意:尽管exchange和binding能够在单点失效问题上幸免于难,但是queue和其上持有的message却不行,这是因为queue及其内容仅仅存储于单个节点之上,所以一个节点的失效表现为其对应的queue不可用。

为了提高程序的吞吐量,保持消息的可靠性,一台机器挂了后,RabbitMQ能够正常生产,消费消息。

rabbitmq有三种模式:单机模式,普通集群模式,镜像集群模式

Demo级别的,一般只是本机测试玩玩而已,生产环境下不会用的。

在多台机器上启动多个rabbitmq实例,每个机器启动一个。
但是你创建的queue,只会放在一个rabbtimq实例上,但是每个实例都同步queue的元数据(存放含queue数据的真正实例位置)。消费的时候,实际上如果连接到了另外一个实例,那么那个实例会从queue所在实例上拉取数据过来。

示意图

这种方式确实很麻烦,也不怎么好,没做到所谓的分布式,就是个普通集群。
普通集群的方式,确实达到了消息的高可用,但没办法保证可靠性,没做到分布式,简而言之,只是一个普通的集群。

这种模式,才是所谓的rabbitmq的高可用模式,跟普通集群模式不一样的是,你创建的queue,无论元数据还是queue里的消息都会存在于多个实例上,然后每次你写消息到queue的时候,都会自动把消息到多个实例的queue里进行消息同步。

上图中每个节点有一个queue,生产者生产完毕数据后投递到指定交换机的队列,交换机的队列进行消息同步。

每个节点queue都有一个完整的rabbitmq节点,所以这种方式叫做镜像集群

好处: 任何一个节点宕机后,其它节点不受影响,正常使用

坏处:

确保机器中安装了Docker,若未安装,可看:【云原生】Docker入门 – 阿里云服务器linux环境下安装Docker

查看拉取的镜像

成功运行

设置节点1

浏览器输入 您的ip地址:15673

再次测试即可成功~

File —> New —> Project —> Maven —> 直接Next 进入下一步创建普通的Maven工程即可

创建一个默认的Maven聚合工程,将src文件夹删除,该工程就是一个Maven聚合工程

引入依赖如下:

在项目内,新建一个Moudle,rabbitmq-order-procer 默认Maven工程,下一步即可

在项目内,新建一个Moudle,rabbitmq-order-cousumer 默认Maven工程,下一步即可

Maven聚合工程创建完成图

Maven依赖图

自行手写MainApplication即可

创建完成!

编写完成!

启动消费者

交换机

=

15674

15675

成功消费数据!

已成功同步消息~

⑥ docker swarm网络问题

docker主机内部网络正常,与其它主机的连接失效,其它主机不能连接docker主机上映射的端口,docker内部也无法连接外部主机。

添加配置

执行 sysctl -p 生效

再次查看docker info,警告消失,主机上的docker网络恢复正常。

我所使用的服务器是阿里云服务器
如果你的集群使用的默认端口4789,那么你可能遇到跟我一样的问题。

阿里云的帮助文档中有这样一句话:

在19.03及之后的版本,docker在swarm init之上增加了–data-path-port uint32 的配置项用于更改docker swarm的VXLAN端口。
修改端口之后成功解决问题

查看docker日志(journalctl -u docker -n 20 -f )发现 :

出现这个原因是因为宿主机没有加载ip_vs模块。在各个节点加载ip_vs模块后重启docker即可。

⑦ 怎样在阿里云上安装docker

怎样在阿里云上安装docker
更多1
Linux
因为debian 7安装docker的手续比较麻烦,所以我把阿里云的系统换成了ubuntu 14.04,然后参考:https://docs.docker.com/installation/ubuntulinux/
还算比较方便:apt-get update && apt-get install docker.io,然后再改两个配置就完事了。
不过,在你运行docker run -i -t ubuntu /bin/bash的时候,会报错,说是docker -d好象没有运行,这不科学 啊,刚刚不是装好的吗?
于是ps aux|grep docker,果然没有进程,于是直接输入:docker -d,然后就发现报错了:
2014/08/18 12:05:42 Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'

老规矩,内事不决问度娘,外事不决问谷歌,结果居然看到有人回复 :

当时这个心就碎了,心想这不科学啊,于是再google,就真的发现了:

OK,那就试试吧:
sudo brctl addbr docker0 # create your bridge
sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
sudo ip link set dev docker0 up # bring it up - not really sure if this is necessary or is it done automatically
sudo ifconfig docker0 10.0.0.4 # give it an IP

当然要运行brctl还是要装一个bridge-utils工具的,当然这个ubuntu会提醒你,一步步的做完后,docker 果然可以启动了。这时候再运行一下,service docker.io start,然后ps aux|grep docker,进程还活着。
于是输入:
docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
2014/08/18 12:16:44 Get https://index.docker.io/v1/repositories/ubuntu/images: dial tcp: lookup index.docker.io on 10.143.22.118:53: no answer from server

咦。不能上网。其实就是上面的代码的问题,因为默认aliyun的eth0是内网IP,所以上述的
sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
这里应该用eth1
重新执行一下。然后再次运行:
docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
c5881f11ded9: Download complete
。。。。。。。

整个就完成了

⑧ 使用Docker部署GitLab

查看是否拉取成功

编写内容

在该文件目录下,授予 gitlab_start.sh 执行权限

要注意端口是否被占用

修改 gitlab_start.sh 文件,将映射到宿主机的端口改为 8088 ,或者其它没被占用的端口

重新运行 ./gitlab_start.sh 文件,报错如下

这是因为之前的容器虽然没有运行起来,但是已经创建了,把它删除掉

重新运行 gitlab_start.sh 文件

可以看到容器成功启动

创建 docker-compose.yml 文件,并在该文件所在的文件夹目录下运行 docker-compose up -d
需要事先安装 docker-compose
安装docker-compose

:端口和映射目录可根据需要修改

若开放访问端口为 80 , external_url 可不加端口号,默认80

若以 3.1 方法创建,需要修改相关配置文件

在Gitlab容器 运行状态 时,重启服务,并远程访问网站测试

*若访问Gitlab出现502等错误,使用命令检查错误原因

e.g.

查看上述配置文件,查找错误原因

[图片上传失败...(image-e9789-1636370071222)]

虽然容器启动成功,但是却没办法根据 ip:port 访问gitlab

拉取tomcat镜像

为了测试8088端口是否可用,先把gitlab的容器暂停

启动tomcat容器,并将tomcat容器的8080端口映射到宿主机的8088端口

一切正常,访问ip:8088,还是和以前一样访问不了

因为之前系统的防火墙一直是关闭的并且其它的服务能正常访问,所以没有怀疑是防火墙的问题

把防火墙打开

访问之前能正常访问的服务,果然没法正常访问。

把该服务的端口开发,正常访问。

打开8088端口

再次访问

返回tomcat的404页面: HTTP Status 404 – Not Found

虽然是404页面,但是说明此时的端口是能正常访问的

把tomcat的容器停止运行,重新运行gitlab容器

虽然没启动成功,但离成功更进一步了:)

尝试把这个容器删除掉,再创建一次后还是得到这个错误。

还是访问不了,检查一下GitLab内部是否有问题

一切正常

我再次换成tomcat容器进行测试,发现8088端口访问不了了。

但是在宿主机内ping本机是可以的

但是,换成 ip:8088 则不行

根据以上两篇文章,提出 阿里云的内网eth0 网段正好跟Docker 的虚拟网卡都是 172 网段,有冲突

观察发现我使用的云服务器也是阿里云,并且通过 ifconfig 查看

并且查看阿里云的内网ip确实也是 172 开头。

编辑配置文件 /etc/docker/daemon.json ,若 daemon.json 文件不存在新建即可。

重新启动docker服务

可以看到docker0 的地址变了。

但是要注意,使用 docker 启动的服务会默认使用 docker0 ,如果是用 docker-compose 启动的服务则不会。上面的 br-12aa369ee4a6 对应的是docker-compose启动的服务,可以看到还是172的网段。

docker-compose up使用自定义的网段的两种方式(从其根源指定)

根据该文使用方法2,即修改 daemon.json 。但并不能成功访问,我的环境是: docker:20.10.7 , docker-compose:1.24.1

后面发现访问不成功的原因在于 docker 与防火墙之间的关系,可以关掉防火墙,开启 docker ,不能访问则打开防火墙。在它们之间来回试探 = =。
后面尝试过关闭 firewalld ,打开 iptables

在启用 iptables 时,一般关掉 iptables 可以正常访问,打开则不能正常访问。
在启用 firewalld 时,按照 docker firewalld 之间启动关闭的顺序不同,有时是开着防火墙能访问,有时是关了防火墙能访问。

但是容器内不能访问外部网络,该问题现在还未解决。 有一种迂回的解决方法就是容器使用 host 网络模式

问题 :怀疑是docker,firewalld与iptables之间的设置问题

Docker与IPtables

docker 端口映射 及外部无法访问问题

Docker and IPtables

还有一种访问不了GitLab的情况是端口映射和配置文件有误。

快速的解决方法:将宿主机端口号和容器号设置相同,可参考下面的博客。

利用GitLab Docker images安装GitLab(填坑)

[图片上传失败...(image-457ad3-1636370071221)]

如果系统环境正常,安装会十分顺利,一般不会有奇怪的问题。
我在不同的服务器安装过
阿里云 CentOS 7.6 : 访问正常,但是因内存不够出现502错误,容器内可正常连接外部网络
阿里云 Alibaba Cloud Linux 2 : 可能不能正常访问容器,容器内不能正常连接外部网络。怀疑是防火墙与docker的问题。

修改密码:

⑨ Docker Stack介绍及使用入门

在前面的文章中,我们介绍Docker Compose,缺点是不能在分布式多机器上使用;我们还介绍了Docker swarm,缺点是不能同时编排多个服务,所以才有了Docker Stack,可以在分布式多机器上同时编排多个服务。

我们使用前面文章 《Docker Compose介绍及使用入门》 中的2.3节的案例进行如下Docker Stack的演示。

父工程demo包含两个子工程:

务必确保两个子工程可以正常运行再进行下面的操作。

分别在service1和service2目录下执行如下命令,分别打包镜像:

然后执行 docker images 查看一下镜像是否正常创建成功:

我自己需要将本地创建好的docker镜像service1和service2迁移到远程的阿里云服务器上,因为docker swarm集群都是在上面搭建的,后面docker stack实验的进行也是在上面进行。

方式一:推送和拉取

然后登录自己的Docker Hub账户检查下镜像是否成功push了。如果OK的话,那么登录阿里云的远程服务器,执行如下的镜像pull操作。

然后执行 docker images 查看镜像是否导入成功。

方式二:导出和导入

然后我们将这两个镜像通过远程SFTP的方式上传到服务器上,存放的目录为 /root/docker-images-zip ,再执行如下的命令就可以将这两个镜像加载到远程服务器的本地镜像仓库中了。

然后执行 docker images 查看镜像是否导入成功。

本地有这两个镜像之后,我们编写compose文件内容如下,文件路径及文件名为 /root/docker-compose.yml :

以有service1和service2镜像的服务器为manager,其它机器为worker node节点,具体的搭建过程在先前文章中讲过了,可以参考 Docker Swarm介绍及使用入门 - (jianshu.com)

然后,我们就可以开始使用stack进行集群部署了。

创建完成后,我们可以通过如下命令查看stack及服务的信息:

Docker Compose介绍及使用入门 - (jianshu.com)

Docker Swarm介绍及使用入门 - (jianshu.com)

docker stack deploy | Docker Documentation

Docker常用命令大全 - (jianshu.com)

docker-stack一键编排lnmp - 知乎 (hu.com)

阅读全文

与阿里云服务器怎么配置docker相关的资料

热点内容
爱因斯坦电影天才百度云链接 浏览:75
流氓不可以看的视频 浏览:54
代号白雪公主的电影 浏览:388
女主在军校很厉害的小说 浏览:516
米思齐为什么要编译才有效 浏览:283
法人如何用app分配权限 浏览:486
安卓手机游戏怎么导入苹果 浏览:537
什么是配置文件java 浏览:646
男主体质特殊只能和女主 浏览:47
中国算法和别的国家不一样吗 浏览:517
法国电影《狂怒》未删减版 浏览:154
金万维无法pin通服务器地址 浏览:825
linuxc语言定时 浏览:25
没有没网址不卡的 浏览:575
中国一共多少程序员 浏览:181
毒液几部可以独立看吗 浏览:426
git解压版配置 浏览:944
易语言高仿steam源码 浏览:204
strerror源码 浏览:118
PDF档名称 浏览:872