qemu
简介
最近在项目中需要编译arm架构的某驱动docker镜像,但是手头上没有现成的arm架构的机器环境,于是在网上搜索了下如何在x86机器模拟arm环境来进行编译。我找到了一款神器:multiarch/qemu-user-static
项目地址:https://github.com/multiarch/qemu-user-static
qemu-user-static是一个用于利用当前操作系统来运行其它架构的一个仿真器,这个github项目可以通过x86的机器编译出其它各个架构的docker镜像。
支持的指令集架构:
armv7l
ppc64le
s390x
aarch64
armv7l
ppc64le
安装qemu
#更新apt源 |
验证和配置docker
拉取arm镜像
docker pull --platform arm64 ubuntu |
试运行
uname -m # 显示主机架构 |
显示报错
配置qemu,重新运行
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # 这一步将执行注册脚本(docker+qemu功能) |
显示运行成功
yml创建ldap-mysql
1.编写yml
创建 compose.yml
vim one_dir/compose.yml |
填入以下内容
version: '2' |
2.运行
进入刚刚创建的文件的路径下
cd one_dir/ |
运行一下命令创建环境
docker-compose up |
如果报错,可以看看是不是没有权限的错误,如果是则加sudo
运行
进入 ldap container:
docker-compose exec ldap /bin/bash |
运行示例
ldapsearch -x -h localhost -b dc=ldap,dc=vives,dc=be -D "cn=admin,dc=ldap,dc=vives,dc=be" -w ldap |
以下为输出示例
# extended LDIF |
PhpLdapAdmin in webbrowser openen op host:
https://localhost:6443 |
允许远程mysql连接
2.进入mysql容器
两种方式,普通进入方式,my_db为创建的Mysql的容器名字,可通过 docker ps
查看
docker exec -it my_db /bin/bash |
docker-compose方式进入
docker-compose exec db /bin/bash |
2.进入mysql
mysql -uroot -p |
2.修改权限
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; ### 123456 mysql的登录密码 |
导出镜像,并在目标设备导入
导出
docker save -o ldap_images.tar osixia/openldap-backup:latest osixia/phpldapadmin:latest osixia/openldap:latest mysql:latest |
在目标设备导入
docker load -i <image_name>.tar |
将compose.yml复制到目标设备,运行
docker-compose up |