前言
本文介绍银河麒麟桌面系统V10上docker的常规使用及注意事项
一、docker信息
银河麒麟桌面系统V10预装的docker,且开机自动启动了docker服务
查看服务状态
systemctl status docker
查看docker信息
sudo docker info
注意:该系统是aarch64架构,dockerhub上的大部分镜像都是x86_64架构下的,在使用dockerhub等平台的镜像时,一定要注意其架构是否支持aarch64!
二、配置免sudo执行
原理:docker客户端指令是通过localsocket方式与dockerd后台服务进程进行通信的,只要具备该文件的读写权限就可以操作docker各项指令。默认情况下,只有root用户和docker组用户可以读写,参考如下
方案一:修改docker.sock权限
方案二:将当前用户yeqiang添加到docker组
sudo usermod -a -G docker yeqiang
注意:方案一立刻生效,单是零时的,系统重启或者docker服务进程重启都将重置,方案二长久有效,但需要重启系统或者重新登陆,因此一般两个方案同时执行,技能保证当前立刻生效,又能保证重启后效果不变。
二、启动一个CentOS容器实例
启动centos容器实例
yeqiang@yeqiang-KVM-Virtual-Machine:~$ docker run --rm -it centos /bin/bash
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
333cbcae3fb8: Pull complete
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Downloaded newer image for centos:latest
[root@e7beb01e5821 /]#
查看容器内CentOS信息
[root@e7beb01e5821 /]# uname -a
Linux e7beb01e5821 4.4.131-20200901.kylin.desktop-generic #kylin SMP Tue Sep 1 18:30:06 CST 2020 aarch64 aarch64 aarch64 GNU/Linux
[root@e7beb01e5821 /]# cat /etc/redhat-release
CentOS Linux release 8.3.2011
安装file指令
[root@e7beb01e5821 /]# yum install file -y
Failed to set locale, defaulting to C.UTF-8
CentOS Linux 8 - AppStream 311 kB/s | 5.2 MB 00:17
CentOS Linux 8 - BaseOS 230 kB/s | 1.9 MB 00:08
CentOS Linux 8 - Extras 1.5 kB/s | 8.1 kB 00:05
Dependencies resolved.
================================================================================================================================================================================
Package Architecture Version Repository Size
================================================================================================================================================================================
Installing:
file aarch64 5.33-16.el8 baseos 77 k
Transaction Summary
================================================================================================================================================================================
Install 1 Package
Total download size: 77 k
Installed size: 135 k
Downloading Packages:
file-5.33-16.el8.aarch64.rpm 303 kB/s | 77 kB 00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 104 kB/s | 77 kB 00:00
warning: /var/cache/dnf/baseos-01ed9fc6ac393b86/packages/file-5.33-16.el8.aarch64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
CentOS Linux 8 - BaseOS 1.6 MB/s | 1.6 kB 00:00
Importing GPG key 0x8483C65D:
Userid : "CentOS (CentOS Official Signing Key) <security@centos.org>"
Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : file-5.33-16.el8.aarch64 1/1
Running scriptlet: file-5.33-16.el8.aarch64 1/1
Verifying : file-5.33-16.el8.aarch64 1/1
Installed:
file-5.33-16.el8.aarch64
Complete!
查看文件信息,可以看到可执行程序、库都是aarch64(arm64)架构
查看安装的软件包,可以看到都是aarch64或者noarch
[root@e7beb01e5821 bin]# rpm -qa
crypto-policies-20200713-1.git51d1222.el8.noarch
python3-pip-wheel-9.0.3-18.el8.noarch
ncurses-base-6.1-7.20180224.el8.noarch
dnf-data-4.2.23-4.el8.noarch
dbus-common-1.12.8-11.el8.noarch
centos-linux-release-8.3-1.2011.el8.noarch
setup-2.12.2-6.el8.noarch
basesystem-11-5.el8.noarch
libselinux-2.9-4.el8_3.aarch64
glibc-minimal-langpack-2.28-127.el8.aarch64
glibc-2.28-127.el8.aarch64
libsepol-2.9-1.el8.aarch64
xz-libs-5.2.4-3.el8.aarch64
libcap-2.26-4.el8.aarch64
info-6.5-6.el8.aarch64
libcom_err-1.45.6-1.el8.aarch64
libxml2-2.9.7-8.el8.aarch64
expat-2.2.5-4.el8.aarch64
libuuid-2.32.1-24.el8.aarch64
chkconfig-1.13-2.el8.aarch64
gmp-6.1.2-10.el8.aarch64
libattr-2.4.48-3.el8.aarch64
coreutils-single-8.30-8.el8.aarch64
sed-4.5-2.el8.aarch64
libcap-ng-0.7.9-5.el8.aarch64
libffi-3.1-22.el8.aarch64
libzstd-1.4.4-1.el8.aarch64
lz4-libs-1.8.3-2.el8.aarch64
libgcrypt-1.8.5-4.el8.aarch64
gzip-1.9-9.el8.aarch64
libunistring-0.9.9-3.el8.aarch64
libassuan-2.5.1-3.el8.aarch64
keyutils-libs-1.5.10-6.el8.aarch64
p11-kit-trust-0.23.14-5.el8_0.aarch64
pcre-8.42-4.el8.aarch64
systemd-libs-239-41.el8_3.aarch64
dbus-tools-1.12.8-11.el8.aarch64
libusbx-1.0.23-4.el8.aarch64
ca-certificates-2020.2.41-80.0.el8_2.noarch
libdb-5.3.28-39.el8.aarch64
ima-evm-utils-1.1-5.el8.aarch64
libdb-utils-5.3.28-39.el8.aarch64
xz-5.2.4-3.el8.aarch64
gdbm-1.18-1.el8.aarch64
shadow-utils-4.6-11.el8.aarch64
libutempter-1.1.6-14.el8.aarch64
acl-2.2.53-1.el8.aarch64
nettle-3.4.1-2.el8.aarch64
glib2-2.56.4-8.el8.aarch64
libcomps-0.1.11-4.el8.aarch64
findutils-4.6.0-20.el8.aarch64
cpio-2.12-8.el8.aarch64
ipcalc-0.2.4-4.el8.aarch64
iproute-5.3.0-5.el8.aarch64
libpcap-1.9.1-4.el8.aarch64
libseccomp-2.4.3-1.el8.aarch64
gawk-4.2.1-1.el8.aarch64
krb5-libs-1.18.2-5.el8.aarch64
libnsl2-1.2.0-2.20180605git4a062cf.el8.aarch64
platform-python-3.6.8-31.el8.aarch64
libpwquality-1.4.0-9.el8.aarch64
util-linux-2.32.1-24.el8.aarch64
curl-7.61.1-14.el8.aarch64
rpm-libs-4.14.3-4.el8.aarch64
device-mapper-1.02.171-5.el8.aarch64
cryptsetup-libs-2.3.3-2.el8.aarch64
elfutils-libs-0.180-1.el8.aarch64
systemd-239-41.el8_3.aarch64
iputils-20180629-2.el8.aarch64
libkcapi-hmaccalc-1.2.0-2.el8.aarch64
dracut-049-95.git20200804.el8.aarch64
python3-libcomps-0.1.11-4.el8.aarch64
dhcp-client-4.3.6-41.el8.aarch64
cyrus-sasl-lib-2.1.27-5.el8.aarch64
libyaml-0.1.7-5.el8.aarch64
npth-1.5-4.el8.aarch64
gpgme-1.13.1-3.el8.aarch64
libdnf-0.48.0-5.el8.aarch64
python3-hawkey-0.48.0-5.el8.aarch64
rpm-build-libs-4.14.3-4.el8.aarch64
python3-dnf-4.2.23-4.el8.noarch
yum-4.2.23-4.el8.noarch
binutils-2.30-79.el8.aarch64
vim-minimal-8.0.1763-15.el8.aarch64
less-530-1.el8.aarch64
rootfiles-8.1-22.el8.noarch
file-5.33-16.el8.aarch64
libgcc-8.3.1-5.1.el8.aarch64
python3-setuptools-wheel-39.2.0-6.el8.noarch
tzdata-2020d-1.el8.noarch
libreport-filesystem-2.9.5-15.el8.aarch64
dhcp-common-4.3.6-41.el8.noarch
centos-gpg-keys-8-2.el8.noarch
centos-linux-repos-8-2.el8.noarch
filesystem-3.8-3.el8.aarch64
pcre2-10.32-2.el8.aarch64
ncurses-libs-6.1-7.20180224.el8.aarch64
glibc-common-2.28-127.el8.aarch64
bash-4.4.19-12.el8.aarch64
zlib-1.2.11-16.el8_2.aarch64
bzip2-libs-1.0.6-26.el8.aarch64
libgpg-error-1.31-1.el8.aarch64
elfutils-libelf-0.180-1.el8.aarch64
libxcrypt-4.1.1-4.el8.aarch64
sqlite-libs-3.26.0-11.el8.aarch64
libstdc++-8.3.1-5.1.el8.aarch64
popt-1.16-14.el8.aarch64
readline-7.0-10.el8.aarch64
json-c-0.13.1-0.2.el8.aarch64
libacl-2.2.53-1.el8.aarch64
libblkid-2.32.1-24.el8.aarch64
libmount-2.32.1-24.el8.aarch64
audit-libs-3.0-0.17.20191104git1c2f876.el8.aarch64
libsmartcols-2.32.1-24.el8.aarch64
lua-libs-5.3.4-11.el8.aarch64
p11-kit-0.23.14-5.el8_0.aarch64
file-libs-5.33-16.el8.aarch64
cracklib-2.9.6-15.el8.aarch64
libidn2-2.2.0-1.el8.aarch64
gdbm-libs-1.18-1.el8.aarch64
libtasn1-4.13-3.el8.aarch64
lzo-2.08-14.el8.aarch64
grep-3.1-6.el8.aarch64
dbus-libs-1.12.8-11.el8.aarch64
dhcp-libs-4.3.6-41.el8.aarch64
procps-ng-3.3.15-3.el8.aarch64
openssl-libs-1.1.1g-11.el8.aarch64
kmod-libs-25-16.el8.aarch64
kmod-25-16.el8.aarch64
libarchive-3.3.2-9.el8.aarch64
squashfs-tools-4.3-19.el8.aarch64
libsemanage-2.9-3.el8.aarch64
dbus-daemon-1.12.8-11.el8.aarch64
libfdisk-2.32.1-24.el8.aarch64
mpfr-3.1.6-1.el8.aarch64
gnutls-3.6.14-6.el8.aarch64
snappy-1.1.8-3.el8.aarch64
libmetalink-0.1.3-7.el8.aarch64
libksba-1.3.5-7.el8.aarch64
ethtool-5.0-2.el8.aarch64
libmnl-1.0.4-6.el8.aarch64
libnghttp2-1.33.0-3.el8_2.1.aarch64
iptables-libs-1.8.4-15.el8.aarch64
libsigsegv-2.11-5.el8.aarch64
libverto-0.3.0-5.el8.aarch64
libtirpc-1.1.4-4.el8.aarch64
platform-python-setuptools-39.2.0-6.el8.noarch
python3-libs-3.6.8-31.el8.aarch64
pam-1.3.1-11.el8.aarch64
libcurl-minimal-7.61.1-14.el8.aarch64
rpm-4.14.3-4.el8.aarch64
libsolv-0.7.11-1.el8.aarch64
device-mapper-libs-1.02.171-5.el8.aarch64
elfutils-default-yama-scope-0.180-1.el8.noarch
systemd-pam-239-41.el8_3.aarch64
dbus-1.12.8-11.el8.aarch64
libkcapi-1.2.0-2.el8.aarch64
systemd-udev-239-41.el8_3.aarch64
dracut-squash-049-95.git20200804.el8.aarch64
bind-export-libs-9.11.20-5.el8.aarch64
dracut-network-049-95.git20200804.el8.aarch64
openldap-2.4.46-15.el8.aarch64
libmodulemd-2.9.4-2.el8.aarch64
gnupg2-2.2.20-2.el8.aarch64
librepo-1.12.0-2.el8.aarch64
python3-libdnf-0.48.0-5.el8.aarch64
python3-gpg-1.13.1-3.el8.aarch64
python3-rpm-4.14.3-4.el8.aarch64
dnf-4.2.23-4.el8.noarch
kexec-tools-2.0.20-34.el8.aarch64
tar-1.30-5.el8.aarch64
hostname-3.20-6.el8.aarch64
langpacks-en-1.0-12.el8.noarch
gpg-pubkey-8483c65d-5ccc5b19
四、不支持arm64架构的例子
参考下图,官方的mysql镜像,没有提供arm64架构支持,docker在pull时,直接报错。
说明:针对这种情况,可以寻找第三方支持arm64架构的镜像,或者自己在银河麒麟桌面系统V10上基于centos或者alpine镜像自行编译制作一个支持arm64版本的mysql docker镜像
总结
docker的使用与x86下主流Linux发行版本(如CentOS、Fedora、Ubuntu、Debian)在使用上没有差异,需要注意的时由于CPU架构时arm64,因此,需要采用支持arm64架构的镜像才能正常使用。
支持arm64的镜像在使用上与x86下无差异,不支持的一般会在pull过程开始报错。可以通过搜寻第三方打包的arm64版本或者自行制作镜像解决此问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)