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

Ubuntu22.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 https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/aliyun-docker.gpg# 添加Docker软件源
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/aliyun-docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io# 安装完成,Docker 服务将会自动启动。你可以输入下面的命令,验证它:
docker --version# 查看docker状态
sudo systemctl status docker# 重启docker
sudo systemctl restart docker# 验证是否成功
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.service2.编辑 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.target3.添加文件权限并启动docker
sudo chmod +x /etc/systemd/system/docker.service4.重载unit配置文件
每次有修改docker.service文件时,都要重新加载systemd配置。sudo systemctl daemon-reload5.设置开机自启Docker服务
sudo systemctl enable docker.service6. 执行开机自启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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c# fromlayout 布局中间空隙问题
  • 无人机培训机构必备运营合格证及驾驶员训练机构合格证详解
  • 告别AI痕迹:如何让Midjourney创作更自然
  • 2024百元蓝牙耳机推荐有哪些?四款百元王炸机型2024推荐
  • 如何理解 Linux 命令 和 Shell 命令 之间的关系
  • Spring Security 原理、源码解析及进阶
  • 如何使用 Qt C++ 基于 FFmpeg 开发本地视频播放器
  • Docker 系列文章导航
  • AI大模型编写多线程并发框架(六十五):发布和应用
  • C++和OpenGL实现3D游戏编程【连载7】——文字和汉字的显示
  • 使用C++编写接口调用PyTorch模型,并生成DLL供.NET使用
  • k8s ingress-nginx
  • JS设计模式之“语言之魂” - 原型模式
  • Python任务编排和工作流管理库之prefect使用详解
  • Istio基础概念
  • JS 中的深拷贝与浅拷贝
  • 《Java编程思想》读书笔记-对象导论
  • CentOS 7 修改主机名
  • docker-consul
  • HomeBrew常规使用教程
  • JavaScript函数式编程(一)
  • Laravel 菜鸟晋级之路
  • Laravel 实践之路: 数据库迁移与数据填充
  • maven工程打包jar以及java jar命令的classpath使用
  • React组件设计模式(一)
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Spring Cloud Feign的两种使用姿势
  • 模型微调
  • 前端技术周刊 2019-02-11 Serverless
  • 使用putty远程连接linux
  • 跳前端坑前,先看看这个!!
  • 温故知新之javascript面向对象
  • 我与Jetbrains的这些年
  • 责任链模式的两种实现
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • HanLP分词命名实体提取详解
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #define,static,const,三种常量的区别
  • #Z2294. 打印树的直径
  • (ibm)Java 语言的 XPath API
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)3D模板阴影原理
  • (转)visual stdio 书签功能介绍
  • (转)视频码率,帧率和分辨率的联系与区别
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)