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

news/2024/9/24 8:06:18/

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_47">开机自启动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__97">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

dockercompose_145">安装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

dockercompose_171">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.ppmy.cn/news/1517694.html

相关文章

在 CentOS 7 上安装 LNMP 环境:MySQL 8.0、PHP 8.3 和 ThinkPHP 8.0

在 CentOS 7 上安装 LNMP 环境,并配置 MySQL 8.0、PHP 8.3 以及 ThinkPHP 8.0,能够为你的 web 应用程序提供一个强大的开发和运行环境。下面是详细的安装步骤: --- ## 在 CentOS 7 上安装 LNMP 环境:MySQL 8.0、PHP 8.3 和 Thin…

如何处理段错误

在调试代码时,我们会遇到一些状况百出的问题,尤其是段错误,让人头大: 造成段错误的原因主要是内存泄漏,操作空指针; 在很长的代码中,去查找问题是很困难的,这里可以在Linux的ubunt…

Scrapy入门学习

文章目录 Scrapy一. Scrapy简介二. Scrapy的安装1. 进入项目所在目录2. 安装软件包Scrapy3. 验证是否安装成功 三. Scrapy的基础使用1. 创建项目2. 在tutorial/spiders目录下创建保存爬虫代码的项目文件3.运行爬虫4.利用css选择器Scrapy Shell提取数据例如: Scrapy 一. Scrapy…

6个一键生成原创文案实用方法,亲测好用!

在当下的这个自媒体时代,文案创作的需求日益增长。无论是用于社交媒体、广告宣传还是各种内容创作,优质的原创文案都能起到关键作用。但有时候,我们在创作文案的过程中可能会陷入灵感枯竭的困境。但别担心,这里有6个一键生成原创文…

【系统分析师】-缓存

目录 1、常见分类 2、集群切片方式 3、Redis 3.1、分布式存储方式 3.2、数据分片方式 3.3、数据类型 3.4、持久化方案 3.5、内存淘汰机制 3.6、Redis常见问题 4、布隆过滤器 1、常见分类 1、MemCache Memcache是一个高性能的分布式的内存对象缓存系统,用…

Golang 中的 String、rune 和 byte

解释 String Go语言中,string就是只读的采用utf8编码的字节切片(slice) 因此用len函数获取到的长度并不是字符个数,而是字节个数。 for循环遍历输出的也是各个字节。 rune rune是int32的别名,代表字符的Unicode编码,采用4个字…

学习bat脚本

内容包含一些简单命令或小游戏,在乐趣中学习知识。 使用方法: 新建文本文档,将任选其一代码保存到文档中并保存为ASCII编码。将文件后缀改为.bat或.cmd双击运行即可。 一. 关机脚本 1. 直接关机 echo off shutdown -s -t 00秒直接关机。 2…

停止在 AWS 中使用 SSH!原因如下!DevSecOps 视角

我们要解决什么问题?欢迎来到雲闪世界。 我见过多少次安全组从 10.0.0.0/8 或更糟的 0.0.0.0/0 开放端口 22?太多次了!但为什么,为什么在有更好的替代方案的情况下,我们在 2024 年仍在使用 SSH?作为一名安全…