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

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部分,可以看到有了buildxcompose插件,无需再单独安装docker compose

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值