openEuler(华为欧拉)安装docker

系统版本、docker版本

欧拉系统为:22.03,docker为:24.0.4

安装Docker

添加docker源

  • *该docker源为阿里云源
# 添加源,以下命令执行成功后,手动编辑/etc/yum.repos.d/docker-ce.repo里的$Release对应的Centos版本号才能对应到正确的下载连接,本文指定的centos版本号为7。
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装稳定版
dnf install -y docker-ce
# 启动docker
systemctl start docker
# 设置为开机启动
systemctl enable docker
# 查看docker版本信息
docker -v
# 或使用
docker version

docker依赖项安装

若安装时出现错误:fuse-overlayfs >= 0.7 error while installing docker
需要安装docker的依赖包,手动编辑:

/etc/yum.repos.d/openEuler.repo

添加以下信息并保存:

[centos-extras]
name=Centos extras - $basearch
baseurl=http://mirror.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=1
gpgkey=http://centos.org/keys/RPM-GPG-KEY-CentOS-7

然后安装这些依赖包:

yum -y install slirp4netns fuse-overlayfs container-selinux

参考:https://stackoverflow.com/questions/65878769/cannot-install-docker-in-a-rhel-server

docker常用指令

启动docker服务、查看服务状态、设置为开机启动

sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker

查看已安装镜像列表

docker image ls

导出镜像到指定路径

docker save myimage -o /path/to/save/myimage.tar

加载保存在指定位置的Docker镜像

docker load -i /path/to/save/myimage.tar

请注意,在加载镜像时,您需要使用该镜像的名称和标记来引用它。如果导出的镜像没有标记,您可以使用docker tag命令为其添加标记。
可以在使用docker load命令成功加载镜像后,安全地删除镜像文件。因为docker load命令将镜像文件加载到Docker守护程序中,从而创建了一个新的Docker镜像。该新的Docker镜像不再依赖于原始镜像文件。
但是,如果您需要重新加载该镜像,您将需要重新获取该镜像文件或从其他位置恢复该文件。因此,在删除镜像文件之前,请确保您不再需要重新加载该镜像

查看容器列表及状态

#查看运行的容器
docker ps
#查看所有容器,包括已停止的容器
docker ps -a

创建并启动一个新容器

#需要注意的是,每次调用run都会创建一个新容器,会占用空间。--name是你指定的容器名称
#-p 3000:3000 表示将docker容器内部的3000端口映射到系统的3000端口,外部程序连接系统3000端口即可连接到容器内部的3000端口
docker run -it --rm -v $(pwd):/mnt --name mycontainer  -p 3000:3000 <容器名称或ID>

启动已经创建容器

#为避免重复创建容器和占用空间,您可以使用 docker start 命令来启动之前创建的容器。
docker start -i mycontainer

查看容器资源占用

docker stats <容器名称或ID>

停止当前容器

在当前容器的控制台输入

exit 0

使用docker指令停止容器

docker stop <容器ID或容器名称>

如果要强制停止容器,可以使用 -f 选项:

docker stop -f <容器ID或容器名称>

删除容器

#该命令将删除指定的Docker容器,并释放其占用的磁盘空间。请注意,如果容器正在运行,则必须先停止容器才能删除它。
docker rm <容器名称或ID>

删除所有已停止的Docker容器

docker container prune

非root用户添加到 docker 用户组中

在Linux系统中,使用Docker启动容器通常需要root权限或者与root等效的权限。这是因为Docker需要访问系统的底层资源,如网络和文件系统等。如果您没有足够的权限,则可能无法启动容器或者无法访问容器所需的资源。

然而,在某些情况下,您可以将非root用户添加到 docker 用户组中,以便该用户可以使用Docker命令而无需使用sudo或root权限。要将用户添加到 docker 用户组中,请使用以下命令:

#您需要使用sudo或root权限来运行此命令
sudo usermod -aG docker <用户名>

完成后,您需要注销并重新登录才能使更改生效。
请注意,将非root用户添加到 docker 用户组中可能会带来一些安全风险,因为该用户可以访问Docker守护程序和容器所使用的底层资源。因此,建议仅将可信用户添加到 docker 用户组中,并且在使用Docker时仍需谨慎行事。

查看 Docker 容器的 IP 地址和端口号

docker inspect 容器名称或ID | grep -E 'IPAddress|Ports'

为Docker容器的传入DISPLAY环境变量

#也可以通过echo $DISPLAY获取到值后直接赋值
docker -e DISPLAY=$DISPLAY

host网络模式,不使用端口映射,共享主机地址及端口

docker --network host

为容器传入环境变量

docker env EN1=XX EN2=YY
posted @ 2023-07-15 11:23  木人草  阅读(7632)  评论(0编辑  收藏  举报