Docker容器与虚拟化技术:kylin 部署 docker容器应用

目录

  一、实验

1.环境

2. kylin 部署 docker及版本升级

3.kylin 部署docker镜像加速

4.kylin 部署 nginx容器应用

5.kylin使用docker容器部署mysql实现数据持久化

6.kylin使用docker容器部署nginx实现配置文件持久化到本地

7.kylin 使⽤ docker 部署容器可视化平台portainer

8.kylin 使⽤ docker 容器部署 Syncthing实现多平台文件同步

二、问题

1.docker安装报错

2.docker-compose 运行报错


  一、实验

1.环境

(1)主机

表1  主机

主机架构版本IP备注
kylin银河麒麟V10192.168.204.77 

docker20.10.13
portainer2.11.0
docker-composev2.24.6
syncthingv1.18.5

(2)查看内核

麒麟4.X版本相当于 CentOS 8 ,麒麟3.X版本相当于 CentOS 7 

[root@kylin ~]# uname -r

2. kylin 部署 docker及版本升级

(1)安装

[root@kylin opt]# dnf install docker-ce

(2)启动服务

[root@kylin ~]# systemctl start docker
[root@kylin ~]# ps -elf | grep docker

(3)查看版本

[root@kylin ~]# docker version

(4)查看已安装软件

[root@kylin ~]# rpm -qa | grep docker

(5)升级docker引擎到新版本

下载社区版二进制文件

Index of linux/static/stable/ (docker.com)

最新版本为25.0.3,选择一个稳定版本20.10.13

https://download.docker.com/linux/static/stable/x86_64/docker-20.10.13.tgz

(6)关闭docker服务

[root@kylin ~]# systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:
  docker.socket
[root@kylin ~]# systemctl stop docker.socket

(7)卸载

[root@kylin ~]# dnf remove docker-ce*

(8)下载

[root@kylin ~]# cd /opt
[root@kylin opt]# wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.13.tgz
--2024-02-20 02:47:38--  https://download.docker.com/linux/static/stable/x86_64/docker-20.10.13.tgz
正在解析主机 download.docker.com (download.docker.com)... 13.32.121.29, 13.32.121.35, 13.32.121.78, ...
正在连接 download.docker.com (download.docker.com)|13.32.121.29|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:64275239 (61M) [application/x-tar]
正在保存至: “docker-20.10.13.tgz”

docker-20.10.13.tgz                                 100%[================================================================================================================>]  61.30M  1.76MB/s  用时 36s     

2024-02-20 02:48:15 (1.69 MB/s) - 已保存 “docker-20.10.13.tgz” [64275239/64275239])

(9)解压

[root@kylin opt]# tar -zxvf docker-20.10.13.tgz 

(10)查看

[root@kylin opt]# cd docker
[root@kylin docker]# ll

[root@kylin docker]# ./docker version

(11)复制

[root@kylin docker]# cd /usr/local/bin/
[root@kylin bin]# ll

(12)配置docke服务

[root@kylin ~]# vim /usr/lib/systemd/system/docker.service

 [Unit]
 Description=Docker Application Container Engine
 Documentation=https://docs.docker.com
 After=network-online.target firewalld.service time-set.target
 Wants=network-online.target

 [Service]
 Type=notify
 ExecStart=/usr/local/bin/dockerd
 ExecReload=/bin/kill -s HUP $MAINPID
 TimeoutStartSec=0
 RestartSec=2
 Restart=always
 StartLimitBurst=3
 StartLimitInterval=60s
 LimitNOFILE=infinity
 LimitNPROC=infinity
 LimitCORE=infinity
 TasksMax=infinity
 Delegate=yes
 KillMode=process
 OOMScoreAdjust=-500

 [Install]
 WantedBy=multi-user.target

(13)重载服务

[root@kylin ~]# systemctl daemon-reload

(14)启动服务

[root@kylin ~]# systemctl start docker

[root@kylin ~]# ps -ef |grep docker

(15)查看版本

[root@kylin ~]# docker version

(16)测试

[root@kylin ~]# docker run hello-world

(17)查看镜像

[root@kylin ~]# docker images

3.kylin 部署docker镜像加速

(1)阿里云镜像加速

Docker 镜像加速器-阿里云开发者社区 (aliyun.com)

(2)配置文件

[root@kylin ~]#  vim /etc/docker/daemon.json

XXX 修改为⾃⼰的加速地址即可

{
  "registry-mirrors": ["https://XXX.mirror.aliyuncs.com"]
}
~   

(3)重启

[root@kylin ~]#  systemctl restart docker

(4)开机自启

[root@kylin ~]# systemctl enable docker 

4.kylin 部署 nginx容器应用

(1)运行

容器的80端口映射到宿主机的8000端口

[root@kylin ~]# docker run -itd -p 8000:80 nginx:latest

(2)查看进程

[root@kylin ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                   NAMES
fafbf60337d2   nginx:latest   "/docker-entrypoint.…"   5 seconds ago   Up 4 seconds   0.0.0.0:8000->80/tcp, :::8000->80/tcp   reverent_raman

(3) 访问

http://192.168.204.77:8000/

(4)关闭容器

[root@kylin ~]# docker stop fafbf60337d2 

[root@kylin ~]# docker ps

(5) 查看所有容器id

[root@kylin ~]# docker   ps  -a
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                      PORTS     NAMES
fafbf60337d2   nginx:latest   "/docker-entrypoint.…"   9 minutes ago    Exited (0) 2 minutes ago              reverent_raman
bc5d30d9e3a6   hello-world    "/hello"                 26 minutes ago   Exited (0) 26 minutes ago             fervent_morse

(6) 再次启动容器

[root@kylin ~]# docker start fafbf60337d2

[root@kylin ~]# docker ps

(7)强制删除

[root@kylin ~]# docker rm -f fafbf60337d2

[root@kylin ~]# docker ps -a

[root@kylin ~]# docker rm -f bc5d30d9e3a6

[root@kylin ~]# docker ps -a

5.kylin使用docker容器部署mysql实现数据持久化

(1)拉取mysql镜像

[root@kylin ~]# docker pull mysql:8.0.32

(2)查看镜像

[root@kylin ~]# docker images

(3)运行

-v 宿主机与容器进行文件或目录的交互

-e 容器启动时给容器传一些变量信息

[root@kylin ~]# docker run -itd -p 3307:3306 --name mysql-server --restart unless-stopped -v /etc/localtime:/etc/localtime -v /dockerdata/mysqldata/db:/var/lib/mysql -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" mysql:8.0.32 --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_bin

[root@kylin ~]# docker ps 

(4)查看生成的目录

[root@kylin ~]# cd /dockerdata/mysqldata/db
[root@kylin db]# ls

[root@kylin db]# cd mysql/
[root@kylin mysql]# ls
[root@kylin mysql]# ll

(5) 查看日志

[root@kylin db]# docker logs 13f726c5f089

(6)删除容器

[root@kylin db]# docker rm -f 13f726c5f089

(7)查看持久化目录

[root@kylin db]# cd /dockerdata/mysqldata/db
[root@kylin db]# ls

(8)再次运行

[root@kylin db]# docker run -itd -p 3307:3306 --name mysql-server --restart unless-stopped -v /etc/localtime:/etc/localtime -v /dockerdata/mysqldata/db:/var/lib/mysql -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" mysql:8.0.32 --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_bin

[root@kylin db]# docker ps

(9)查看日志

服务很快起来,不用做数据初始化

[root@kylin db]# docker logs ab3333e51e93 

6.kylin使用docker容器部署nginx实现配置文件持久化到本地

(1) 查看数据卷

[root@kylin ~]# docker volume ls

(2)创建数据卷

[root@kylin ~]# docker volume create nginx-vol

[root@kylin ~]# docker volume ls

(3)挂在卷

把/etc/nginx 挂载到 数据卷nginx-vol

[root@kylin ~]#  docker run -itd -p 8060:80 --mount source=nginx-vol,target=/etc/nginx nginx:latest

[root@kylin ~]# docker ps

(4) 访问

http://192.168.204.77:8060/

(5)过滤卷名称

[root@kylin ~]# docker inspect 02866cb8314e | grep nginx-vol

查看

[root@kylin ~]# cd /var/lib/docker/volumes/nginx-vol/_data
[root@kylin _data]# ll

(6)修改nginx配置文件

[root@kylin _data]# vim nginx.conf 

修改前:

修改后:

(7)查看

目前容器起来的nginx进程为8个

[root@kylin _data]# ps -ef |grep nginx
……
101        76763   76704  0 04:30 ?        00:00:00 nginx: worker process
101        76764   76704  0 04:30 ?        00:00:00 nginx: worker process
101        76765   76704  0 04:30 ?        00:00:00 nginx: worker process
101        76766   76704  0 04:30 ?        00:00:00 nginx: worker process
101        76767   76704  0 04:30 ?        00:00:00 nginx: worker process
101        76768   76704  0 04:30 ?        00:00:00 nginx: worker process
101        76769   76704  0 04:30 ?        00:00:00 nginx: worker process
101        76770   76704  0 04:30 ?        00:00:00 nginx: worker process

(8)重启容器

[root@kylin _data]# docker restart 02866cb8314e 

目前容器起来的nginx进程为2个

[root@kylin _data]# ps -ef |grep nginx
……
101        77311   77257  0 04:52 ?        00:00:00 nginx: worker process
101        77312   77257  0 04:52 ?        00:00:00 nginx: worker process

7.kylin 使⽤ docker 部署容器可视化平台portainer

(1) 官方地址

https://hub.docker.com/r/portainer/portainer-ce

(2) 下载汉化包

https://github.com/eysp/public/releases/tag/public

(3)拉取镜像

[root@kylin portainer]# docker pull portainer/portainer-ce:latest

[root@kylin portainer]# docker images

(4)解压汉化包

创建目录

[root@kylin _data]# cd /data
[root@kylin data]# mkdir portainer
[root@kylin data]# cd portainer/

[root@kylin portainer]# tar -zvxf public-public.tar.gz

[root@kylin portainer]# mv public-public public

[root@kylin portainer]# ls

(5)创建数据卷

[root@kylin portainer]# docker volume create portainer_data

[root@kylin portainer]# docker volume ls

(6)运行

-name :指定容器名称

-p : 容器端⼝映射到宿主机的端⼝

-v : 将主机⽬录挂载到容器的⽬录

-d :让容器在后台运⾏

docker run -d --restart=always \
--name="portainer" \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
-v /data/portainer/public:/public  \
portainer/portainer-ce:latest

(7) 查看

[root@kylin portainer]# docker ps |grep portainer
bed407a8a728   portainer/portainer-ce:latest   "/portainer"             47 seconds ago      Up 46 seconds      8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer

(8) 登录

http://192.168.204.77:9000

(9)创建用户

(10)进入系统

(11)开始

(12)首页

(13)查看仪表盘

(14)容器列表

(15)查看portainer日志

(16)容器portainer统计

(17)mysql控制台

连接

执行到容器中

(18) 镜像

删除

查看

拉取镜像

查看

(19)网络

(20)存储卷

(21)终端Endpoints

8.kylin 使⽤ docker 容器部署 Syncthing实现多平台文件同步

(1) 下载docker-compose

https://github.com/docker/compose/releases

(2) 安装 docker-compose

上传下载好的离线包至服务器

#修改上传的文件名为docker-compose,并移动至/usr/bin/目录下
[root@kylin opt]# mv docker-compose-linux-x86_64 docker-compose
[root@kylin opt]# mv docker-compose /usr/bin/


#添加可执行权限
chmod +x /usr/bin/docker-compose


(3)验证

查看版本

docker-compose -v

(4) 创建目录

[root@kylin ~]# mkdir -p /data/docker_data/syncthing
[root@kylin ~]#  cd /data/docker_data/syncthing

(5)创建yml文件

[root@kylin ~]#  cd /data/docker_data/syncthing
[root@kylin syncthing]# vim docker-compose.yml

version: "2.1"
 services:
   syncthing:
     image: linuxserver/syncthing
     container_name: syncthing
     hostname: syncthing #optional
     environment:
       - PUID=1000
       - PGID=1000
       - TZ=Asia/Shanghai
     volumes:
       - /data/docker_data/syncthing/config:/config
       - /data/docker_data/syncthing/Documents:/Documents
       - /data/docker_data/syncthing/Media:/Media
     ports:
       - 8384:8384
       - 22000:22000/tcp
       - 22000:22000/udp
       - 21027:21027/udp
     restart: unless-stopped

(6)拉取镜像

[root@kylin syncthing]# docker pull linuxserver/syncthing

(7)运行docker-compose

[root@kylin syncthing]# docker-compose up -d

(8) 查看进程

[root@kylin syncthing]# docker ps | grep syncthing
b6b7ddeb6765   linuxserver/syncthing           "/init"                  4 minutes ago       Up 4 minutes       0.0.0.0:8384->8384/tcp, 0.0.0.0:21027->21027/udp, :::8384->8384/tcp, :::21027->21027/udp, 0.0.0.0:22000->22000/tcp, :::22000->22000/tcp, 0.0.0.0:22000->22000/udp, :::22000->22000/udp   syncthing

(9) 访问

http://192.168.204.77:8384/

弹出提示框

进入界面

(10)设置

(12) 登录

(13)添加文件夹

(14)查看目录

[root@kylin syncthing]# ll

(15)授权

让docker容器也能操作Documents和Media目录

[root@kylin syncthing]# chown 1000:1000 Documents
[root@kylin syncthing]# chown 1000:1000 Media

[root@kylin syncthing]# ll

(16)修改指定的容器目录

高级

类型

修改

(17)查看共享目录

(18)查看 Syncthing的Windows版本

https://github.com/syncthing/syncthing/releases

目前最新版为v1.27.3

(19)下载稳定版

https://github.com/syncthing/syncthing/releases/tag/v1.18.5

选择稳定版下载

(20) Windows以管理员身份运行

(21) Windows访问

http://127.0.0.1:8384/

弹出提示框

进入界面

设置

设置用户及密码

登录

(22)Windows显示id

查看id

(23) Linux 添加远程设备

添加

共享

(24)Windows 确认同步请求

添加设备

保存

添加

保存

共享

高级-修改文件夹类型

查看

目前目录为空

(25)Linux 同步完成

(26)Windows放入文件

(27)Linux 查看已更新

查看容器挂载目录

[root@kylin Documents]# ls
3vjxj-jicgj
[root@kylin Documents]# ll
总用量 0
drwxr-xr-x 3 dmdba dinstall 66  2月 20 07:54 3vjxj-jicgj
[root@kylin Documents]# cd 3vjxj-jicgj/
[root@kylin 3vjxj-jicgj]# ll
总用量 9596
-rw-r--r-- 1 dmdba dinstall 9825222  2月 22  2024 syncthing-windows-amd64-v1.18.5.zip
[root@kylin 3vjxj-jicgj]# 

删除

[root@kylin 3vjxj-jicgj]# rm -rf syncthing-windows-amd64-v1.18.5.zip 

(28)Windows查看文件

文件未删除

二、问题

1.docker安装报错

(1)报错

(2)原因分析

/containerd.io-1.6.4-1.p01.ky10.x86_64.rpm 下载失败

(3)解决方法

查看仓库

Index of /NS/V10/V10SP3/EPKL/x86_64/Packages/ (cs2c.com.cn)

下载

[root@kylin opt]# wget https://update.cs2c.com.cn/NS/V10/V10SP3/EPKL/x86_64/Packages/docker-ce-19.03-15.ky10.x86_64.rpm

安装

[root@kylin opt]# dnf install docker-ce

2.docker-compose 运行报错

(1)报错

[root@kylin syncthing]# docker-compose up -d
yaml: line 1: did not find expected key

(2)原因分析

yml文件格式错误

(3)解决方法

yml文件验证格式

YAMLlint - The YAML Validator

修改配置文件

[root@kylin syncthing]# vim docker-compose.yml 

修改前:

修改后:

成功:

[root@kylin syncthing]# docker-compose up -d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/402986.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【青龙】快速搭建青龙面板,部署属于你自己的应用!

青龙面板是一个支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台。 废话不多说,直接开始。 这里使用一台 雨云 的云服务器作为演示。雨云注册地址:https://www.rainyun.com/ 优惠码:lz932 使用优惠码注册后绑定微信可获得8折…

Spring框架@Autowired注解进行字段时,使用父类类型接收子类变量,可以注入成功吗?(@Autowired源码跟踪)

一、 前言 平常我们在使用spring框架开发项目过程中,会使用Autowired注解进行属性依赖注入,一般我们都是声明接口类型来接收接口实现变量,那么使用父类类型接收子类变量,可以注入成功吗?答案是肯定可以的!…

从零学习Linux操作系统第二十七部分 shell脚本中的变量

一、什么是变量 变量的定义 定义本身 变量就是内存一片区域的地址 变量存在的意义 命令无法操作一直变化的目标 用一串固定的字符来表示不固定的目标可以解决此问题 二、变量的类型及命名规范 环境级别 export A1 在环境关闭后变量失效 退出后 关闭 用户级别&#xff…

Java项目:24 基于SpringBoot+freemarker实现的人事管理系统

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 基于SpringBootfreemarker实现的人事管理系统分为七大模块:绩效考核,招聘管理,档案管理,工资管…

Marin说PCB之如何使用mentor--xpedition-Valor软件做gerber_compare

首先打开mentro_xpedition,自带的Valor软件。 2,在File栏中选择import---odb。 3,导入生成的DOB文件。 4,在这个界面下再重新导入一份之前的参考板的ODB文件进来。 5,接着点击STEPS---board,这样单板的数据就被调进来了。 6&#…

《剑指Offer》笔记题解思路技巧优化_Part_6

《剑指Offer》笔记&题解&思路&技巧&优化_Part_6 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题🟡1.LCR 168. 丑数—— 丑数🟢2. LCR 16…

2022蓝帽杯取证初赛

检材:https://pan.baidu.com/s/1ibOdxyCWeC5x0DQKjwcz7w?pwdvg6g 目录 手机取证1、627604C2-C586-48C1-AA16-FF33C3022159.PNG图片的分辨率是?(答案参考格式:19201080)2、姜总的快递单号是多少?&#xff0…

C++学习Day09之异常变量的生命周期

目录 一、程序及输出1.1 throw MyException()------catch (MyException e)1.2 throw MyException()------catch (MyException &e)1.3 throw &MyException()------catch (MyException *e)1.4 throw new MyException()------catch (MyException *e) 二、分析与总结 一、程…

QT3作业

1 2. 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数,将登录按钮使用t5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin"&#…

【C++初阶】系统实现日期类

目录 一.运算符重载实现各个接口 1.小于 (d1)<> 2.等于 (d1d2) 3.小于等于&#xff08;d1<d2&#xff09; 4.大于&#xff08;d1>d2&#xff09; 5.大于等于&#xff08;d1>d2&#xff09; 6.不等于&#xff08;d1!d2&#xff09; 7.日期天数 (1) 算…

顺序表详解(如何实现顺序表)

文章目录 前言 在进入顺序表前&#xff0c;我们先要明白&#xff0c;数据结构的基本概念。 一、数据结构的基本概念 1.1什么是数据结构 数据结构是由“数据”和“结构”两词组合而来。所谓数据就是&#xff1f;常见的数值1、2、3、4.....、姓名、性别、年龄&#xff0c;等。…

学习总结22

解题思路 简单模拟。 代码 #include <bits/stdc.h> using namespace std; long long g[2000000]; long long n; int main() {long long x,y,z,sum0,k0;scanf("%lld",&n);for(x1;x<n;x)scanf("%lld",&g[x]);for(x1;x<n;x){scanf(&qu…

尚未创建默认 SSL 站点。若要支持不带 SNI 功能的浏览器,建议创建一个默认 SSL 站点。

在 Windows Server 2012 IIS 站点中设置 SSL 证书后&#xff0c;IIS 右上角提示&#xff1a; 尚未创建默认 SSL 站点。若要支持不带 SNI 功能的浏览器&#xff0c;建议创建一个默认 SSL 站点。 该提示客户忽略不管&#xff0c;但是若要支持不带 SNI(Server Name Indication)…

外卖柜平台的设计与实现以及实践与总结

近年来&#xff0c;外卖行业的快速发展推动了外卖配送行业的进步和创新。外卖柜平台作为一种新兴的配送方式&#xff0c;在提高配送效率和服务质量方面具有很大的优势。本文将探讨美团外卖柜平台的设计与实现&#xff0c;以及如何保障其稳定性和安全性。 架构设计 美团外柜平台…

React -- useEffect

React - useEffect 概念理解 useEffect是一个React Hook函数&#xff0c;用于在React组件中创建不是由事件引起而是由渲染本身引起的操作&#xff08;副作用&#xff09;, 比 如发送AJAX请求&#xff0c;更改DOM等等 :::warning 说明&#xff1a;上面的组件中没有发生任何的用…

市场复盘总结 20240222

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 25% 最常用…

leetcode日记(32)字符串相乘

做了很久很久……真的太繁琐了&#xff01;&#xff01; class Solution { public:string multiply(string num1, string num2) {string s;string str;if (num1 "0" || num2 "0") return "0";for(int inum2.size()-1;i>0;i--){int c2num2[…

银行项目网上支付接口调用测试实例

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 公司最近有一个网站商城项目要开始开发了&#xff0c;这几天老板和几个同事一起开着需求会议&…

常见消息中间件

ActiveMQ 我们先看ActiveMQ。其实一般早些的项目需要引入消息中间件&#xff0c;都是使用的这个MQ&#xff0c;但是现在用的确实不多了&#xff0c;说白了就是有些过时了。我们去它的官网看一看&#xff0c;你会发现官网已经不活跃了&#xff0c;好久才会更新一次。 它的单机吞…

2024 ,Android 15 预览版来了

日前&#xff0c;Android 15 发布了 Preview 1 预览版&#xff0c;预览计划将从 2024 年 2 月持续到 Android 15 公开发布&#xff08;预计 10 月&#xff09;&#xff0c;3月是开发者预览版 2&#xff0c;4 月将推出 Beta 1&#xff0c;5 月将推出 Beta 2&#xff0c;6 月的 B…