首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

  • 24-12-05 23:25
  • 3469
  • 11929
juejin.cn

docker:在国产欧拉系统安装部署及docker和docker compose使用,附常用命令【建议收藏】

引言

前面一篇文章对docker的作用和重大版本变更做了描述,有兴趣的可以去看看《Docker介绍和docker重大版本变更历史》,此文不赘述。

体会很深的一句话,送给各位:

技术虽然重要,但它本身并不直接产生巨大的或过度的价值,其价值在于如何被应用。此时选择用这篇文章来分享实现它的一部分价值。

1、docker安装和配置

操作环境如下:

  • openEuler 24.03 LTS;获取地址:见文末【相关资料】
  • docker-ce-26.1.4;

准备工作:

bash
代码解读
复制代码
# 关闭 SELinux(Security-Enhanced Linux),因为 SELinux 可能会导致 Docker 的某些功能出现权限问题,尤其是与容器存储和挂载卷相关的操作。 #临时关闭 setenforce 0 ​ #永久关闭 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config ​ #状态查询 sestatus

① 增加Docker源:

arduino
代码解读
复制代码
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

② 增加Docker源地址:

bash
代码解读
复制代码
sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo

③ 更新缓存:

代码解读
复制代码
dnf makecache timer

④ 安装docker:

代码解读
复制代码
dnf install -y docker-ce-26.1.4

等待安装完成。

⑤ docker镜像加速:

bash
代码解读
复制代码
cd /etc/docker && vi daemon.json # 粘贴以下内容进行保存 { "registry-mirrors": [        "https://hub.uuuadc.top",        "https://docker.anyhub.us.kg",        "https://dockerhub.jobcher.com",        "https://dockerhub.icu",        "https://docker.ckyl.me",        "https://docker.awsl9527.cn"   ] }

⑥ 设置docker开机自启

bash
代码解读
复制代码
systemctl enable docker

⑦ 修改docker创建容器的默认ulimit配置

perl
代码解读
复制代码
vi /usr/lib/systemd/system/docker.service # 编辑docker.service,在ExecStart命令后加上创建容器的默认ulimit配置,如下: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --default-ulimit nofile=65535:65535 ​

⑧ 启动docker

sql
代码解读
复制代码
systemctl start docker

注意:

如果中途已经启动docker,修改配置文件后重启需使用以下命令来使配置生效。

代码解读
复制代码
systemctl daemon-reload systemctl restart docker

输入docker info,查看docker信息的plugins部分,可以看到有了buildx和compose插件,无需再单独安装docker compose。

1.png

2、docker常用命令

bash
代码解读
复制代码
# 使用指定镜像运行一个容器,-p 指定端口映射; docker run -p [host_port]:[container_port] [image_name] #显示状态为运行的容器 docker ps #显示所有容器,包括运行中的和退出的 docker ps -a # 查看容器的日志 docker logs 容器ID # 查看容器的端口映射 docker port #重启一个容器 docker restart 容器ID #停止容器运行 docker stop 容器ID #删除一个容器 docker rm 容器ID #在容器里执行一个命令 docker exec # 进入容器控制台 docker exec -it 容器ID bash # 镜像操作,显示所有的镜像列表 docker images # # 从镜像仓库拉取镜像 docker pull # 实时查看容器日志 docker logs -f 容器ID

这篇文章《》演示了如何快速用docker运行一个IT-TOOLS工具站,有兴趣的可以去看看。

3、docker compose

docker compose是用于定义和运行多容器 docker 应用的工具。它使用一个 YAML 文件(通常命名为 docker-compose.yml)来定义服务、网络和卷等资源。通过一条命令即可高效管理和操作这些容器。

docker compose 的命令跟docker的差不多

1) docker compose 文件及释义

释义:

  • 1)services:定义了一个服务(容器),这里是 my-prometheus;

  • 2)networks:定义了 Docker 网络,名为my_network,用于容器之间的通信;

    • ①driver: bridge,使用桥接网络模式(默认模式);容器可以通过网络名称互相通信,但主机外部无法直接访问。
    • ②external: true,表示 my_network 是一个外部预先创建的网络,Compose 不会自动创建。所以在运行这个文件之前,需要手动创建网络docker network create my_network。
  • 3)image: prom/prometheus:v2.40.1,使用 Docker 镜像 prom/prometheus,版本为 v2.40.1;

  • 4)container_name: my-prometheus,创建一个容器名为my-prometheus的prometheus容器;

  • 5)ports: - "9090:9090",端口映射, 左边是映射到宿主机的端口,右边是内部端口9090;

  • 6)volumns,存储卷挂载,左边是宿主机的路径,右边是容器内部地址;

  • 7)restart: always,如果容器因故停止,Docker 会自动尝试重新启动容器,适合长期运行的服务。

  • 8)networks: - my_network,将容器加入名为 my_network 的 Docker 网络中,便于与其他容器通信

docker-compose.yml 内容如下:

yaml
代码解读
复制代码
services: my-prometheus: image: prom/prometheus:v2.40.1 container_name: my-prometheus ports: - "9090:9090" volumes: - /data/install/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml restart: always networks: - my_network networks: my_network: driver: bridge external: true

运行服务后,通过浏览器访问 http://主机IP:9090 查看 Prometheus 界面。

2) docker compose 常用命令
bash
代码解读
复制代码
# 显示所有容器 docker compose ps #删除所有nginx容器,镜像 docker compose down # 启动当前目录中docker-compose.yml文件中所有的服务; -d 用于在后台(daemon)运行Docker docker compose up -d # 指定某个xxx.yml启动其中所有的服务 docker compose -f xxx.yml up -d #构建建启动nignx容器 docker compose up -d nginx #登录到nginx容器中 docker compose exec nginx bash #重新启动nginx容器 docker compose restart nginx #停止nignx容器 docker compose stop nginx #启动nignx容器 docker compose start nginx #暂停nignx容器 docker compose pause nginx #恢复ningx容器 docker compose unpause nginx #查看nginx的日志 docker compose logs nginx #查看nginx的实时日志 docker compose logs -f nginx #删除容器(删除前必须关闭容器) docker compose rm nginx #在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器 docker compose run --no-deps --rm php-fpm php -v #验证(docker compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。 docker compose config -q #以json的形式输出nginx的docker日志 docker compose events --json nginx

相关资料

  • openEuler 24.03 LTS:www.openeuler.org/zh/download…

docker 以及docker compose的简单使用就到这儿了。

  • 欧拉系统介绍:《》

结语

本文初步介绍了在openEuler系统上的docker安装、配置镜像加速、docker常用命令、docker compose文件示例及解释、docker compose常用命令等,后续还会继续分享基于在生产环境的使用。

文章创建日期2024年11月20日,你好,我是程序员七平,有帮助的话还请点个关注,谢谢。

注:本文转载自juejin.cn的程序员七平的文章"https://juejin.cn/post/7444563117961527307"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

103
后端
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top