M1/M2芯片的mac虚拟机docker安装mysql
原创
©著作权归作者所有:来自51CTO博客作者Json2nd的原创作品,请联系作者获取转载授权,否则将追究法律责任
说明
mac的M1 M2芯 arm64架构。楼主为了构造开发环境,在mac安装了虚拟机(Parallels DeskTop)。在虚拟机上安装了Ubuntu系统。在系统上安装了docker(菜鸟教程搜索docker安装能看到各种环境的安装方法:推荐国内镜像的自动安装)。在docker安装mysql的时候遇到问题
docker获取指定版本的容器镜像
执行安装命令:
得到了不太友好的反馈:
root@ubuntu-linux-22-04-desktop:/home# docker pull mysql:5.7
5.7: Pulling from library/mysql
no matching manifest for linux/arm64/v8 in the manifest list entries
于是微调一下
获取指定架构版本容器
docker pull --platform linux/x86_64 mysql:5.7
如果你是Mac苹果电脑,并且在Docker上运行某个应用,则可以尝试如下解决方式。
启动命令加入 --platform linux/amd64 即可
TIP
位运算
运算符是把数字看作二进制来进行计算
a 为 60,b 为 13二进制格式如下:
a = 0011 1100
b = 0000 1101
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
运算符
| 描述
| 实例
|
&
| 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
| (a & b) 输出结果 12 ,二进制解释: 0000 1100
|
|
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
| (a | b) 输出结果 61 ,二进制解释: 0011 1101
|
^
| 按位异或运算符:当两对应的二进位相异时,结果为1
| (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
|
~
| 按位取反运算符:数据存储补码 取反后得出的原码数值。
| (~a ) 输出结果 -61 。推导过程。
|
<<
| 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
| a << 2 输出结果 240 ,二进制解释: 1111 0000
|
>>
| 右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数
| a >> 2 输出结果 15 ,二进制解释: 0000 1111
|
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 0000 1100 4+8 = 12
print("1 - c 的值为:", c)
c = a | b; # 0011 1101 1+4+8+16+32 = 61
print("2 - c 的值为:", c)
c = a ^ b; # 49 = 0011 0001 1+16+32 =49
print("3 - c 的值为:", c)
c = ~a;
#1100 0011 (-1) 64 32 16 8 4 2 1
print("4 - c 的值为:", c)
c = a << 2; # 240 = 1111 0000
print("5 - c 的值为:", c)
c = a >> 2; # 15 = 0000 1111
print("6 - c 的值为:", c)
1 - c 的值为: 12
2 - c 的值为: 61
3 - c 的值为: 49
4 - c 的值为: -61
5 - c 的值为: 240
6 - c 的值为: 15