说明

mac的M1 M2芯 arm64架构。楼主为了构造开发环境,在mac安装了虚拟机(Parallels DeskTop)。在虚拟机上安装了Ubuntu系统。在系统上安装了docker(菜鸟教程搜索docker安装能看到各种环境的安装方法:推荐国内镜像的自动安装)。在docker安装mysql的时候遇到问题

docker获取指定版本的容器镜像


执行安装命令:

docker pull mysql:5.7

得到了不太友好的反馈:

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