当前位置: 首页 > article >正文

Ubuntu20.04安装 docker和docker-compose环境

Docker简介

Docker 是一个开源的应用容器引擎,它使开发者能够打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app), 更重要的是容器性能开销极低。

传统的虚拟化技术(如 VMware,KVM 等)是在硬件层面实现虚拟化,需要模拟硬件,因此无法避免地有一些额外的性能开销。而 Docker 是在操作系统层面上实现虚拟化,Docker 容器和内核交互,几乎没有性能损耗。
在这里插入图片描述

Docker的安装

# update
sudo apt update
#执行以下命令来安装这些依赖
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y



#添加docker官网 GPG 密钥、设置stable 仓库
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加Docker软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# 安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 安装完成,Docker 服务将会自动启动。你可以输入下面的命令,验证它:
docker --version

# 查看docker状态
sudo systemctl status docker

# 重启docker
service docker restart

# 验证是否成功
sudo docker run hello-world

设置非root用户的权限
默认情况下,只有 root 或者 有 sudo 权限的用户可以执行 Docker 命令。
想要以非 root 用户执行 Docker 命令,需要将用户添加到 Docker 用户组,该用户组在 Docker_ce 软件包安装过程中被创建。输入:

sudo usermod -aG docker $USER   ## $USER是一个环境变量,代表当前用户名。

登出,并且重新登录,以便用户组会员信息刷新。

开机自启动docker

sudo systemctl enable docker

若遇到问题:
Authentication is required to manage system service or unit files.或 Failed to enable unit: Unit file docker.service does not exist.

解决:手动创建docker.service文件(如下步骤1~5)
1.创建docker.service文件(将docker注册为service)
sudo vim /etc/systemd/system/docker.service

2.编辑 docker.service文件。
  将下列配置命令加到docker.service中并保存。命令如下:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target

3.添加文件权限并启动docker
sudo chmod +x /etc/systemd/system/docker.service

4.重载unit配置文件
每次有修改docker.service文件时,都要重新加载systemd配置。

sudo systemctl daemon-reload

5.设置开机自启Docker服务
sudo systemctl enable docker.service

6. 执行开机自启docker
sudo systemctl enable docker

docker 常用命令

# 列出当前正在运行的容器
docker ps
# 列出所有容器,包括未运行的
docker ps -a
# 运行一个新容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 停止一个或多个正在运行的容器
docker stop CONTAINER [CONTAINER...]
# 强制停止一个或多个正在运行的容器
docker kill CONTAINER [CONTAINER...]
# 删除一个或多个容器
docker rm CONTAINER [CONTAINER...]
# 删除一个或多个镜像
docker rmi IMAGE [IMAGE...]
# 启动一个或多个已经被停止的容器
docker start CONTAINER [CONTAINER...]
# 重启容器
docker restart CONTAINER [CONTAINER...]
# 进入正在运行的容器
docker exec -it CONTAINER COMMAND
# 构建一个镜像
docker build -t IMAGE PATH
# 将当前目录的Dockerfile上下文发送给守护进程,并在那里构建镜像
docker build -t IMAGE .
# 拉取一个镜像或仓库
docker pull NAME[:TAG]
# 推送一个镜像或仓库到仓库
docker push NAME[:TAG]
# 查看镜像信息
docker inspect IMAGE|ID [OPTIONS]
# 查看容器信息
docker inspect CONTAINER [CONTAINER...]
# 查看Docker的守护进程状态
docker info
# 删除所有容器
docker container prune -f
# 删除所有未使用的镜像
docker image prune -a -f
# 清理不再使用的镜像、容器、网络和卷
docker system prune
docker system prune -a -f
# 查看Docker守护进程的日志
docker logs -f

安装docker-compose

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
使用 Dockerfile 定义应用程序的环境。
使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
最后,执行 docker-compose up 命令来启动并运行整个应用程序。

安装命令如下。(实际上就是从github的releases中下载对应系统版本的docker-compose程序文件,授予执行权限即可)

$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose

上面下载可能会有问题,也可以离线下载包

# 将 docker-compose 移至 /usr/local/bin 目录下并重命名
$ sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

# 设定 docker-compose 的执行权限
$ sudo chmod +x /usr/local/bin/docker-compose

# 查询 docker-compose 版本以确认是否成功安装
$ docker-compose -v
Docker Compose version v2.29.1

docker-compose常用命令

# 列出由Compose管理的正在运行的容器
docker-compose ps
# 自动完成包括构建镜像,(重新)创建服务,启动服务
docker-compose up
# 后台执行
docker-compose up -d
# 启动指定组件
docker-compose up mysql
docker-compose up -d my_service
# 此命令将会停止 up 命令所启动的容器,并移除网络
docker-compose down 
# -v删除所有卷的选项
docker-compose down -v
# 将根据 docker-compose.yml 文件中的 build 部分 重构所有服务的镜像。
docker-compose build
# 使用 --build 参数将重新构建服务的镜像,然后启动服务。
docker-compose up --build
# 重启所有服务
docker-compose restart
docker-compose start
docker-compose stop


http://www.kler.cn/a/281723.html

相关文章:

  • 学习记录:js算法(九十九):冗余连接
  • HarmonyOS Next 关于页面渲染的性能优化方案
  • 2024年11月19日随笔
  • 集群聊天服务器(7)数据模块
  • Flutter 扫描二维码
  • C++ 并发专题 - 线程安全的单例模式
  • 数据分析之Python对数据分组排序
  • 【qiankun】使用总结
  • 【C语言从不挂科到高绩点】04-流程控制语句-if
  • 与树懒论文一起展望学术写作的未来:AI与人类创造力的交汇点
  • 【Linux应用编程实战】常见函数应用
  • 程序猿成长之路之数据挖掘篇——Kmeans聚类算法
  • SpringBoot日常:Spring之@PostConstruct解析
  • Windows中Jupyter notebook设置默认目录
  • 全志/RK安卓屏一体机:医疗手推车解决方案,支持鸿蒙国产化
  • 中间件实时监控,运维难题一站解决
  • 【LeetCode】搜索旋转排序数组[python]
  • 【Linux】如何用一条命令终止某个后台进程?
  • AI学习记录 - 模型训练中怎么反向传播以及学习率的影响
  • CSS 的font-synthesis属性与中文体验增强
  • 手机号码归属地查询如何用PHP进行调用
  • zoom 会议 javascript 转录例子
  • 第四十篇-TeslaP40+Ollama+Ollama-WebUI(自编译)
  • Python-MNE-源定位和逆问题01:源估计(SourceEstimate)数据结构
  • Nginx 部署前端 Vue 项目全攻略
  • Spring WebFlux – CVE-2023-34034 – 撰写和概念验证