国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker與Docker-Compose詳解

這篇具有很好參考價值的文章主要介紹了Docker與Docker-Compose詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、Docker是什么?

在計算機(jī)中,虛擬化(英語: Virtualization) 是一種資源管理技術(shù),是將計算機(jī)的各種實體資源,如服務(wù)器、網(wǎng)絡(luò)、內(nèi)存及存儲等,予以抽象、轉(zhuǎn)換后呈現(xiàn)出來,打破實體結(jié)構(gòu)間的不可切割的障礙,使用戶可以比原本的組態(tài)更好的方式來應(yīng)用這些資源。這些資源的新虛擬部份是不受現(xiàn)有資源的架設(shè)方式,地域或物理組態(tài)所限制。一般所指的虛擬化資源包括計算能力和資料存儲。

在實際的生產(chǎn)環(huán)境中。虛擬化技術(shù)主要用來解決高性能的物理硬件產(chǎn)能過利和老的舊的硬件產(chǎn)能過低的重組重用,透明化底層物理硬件,從而最大化的利用物理硬件資源的充分利用。

虛擬化技術(shù)種類很多,例如:軟件虛擬化、硬件虛擬化、內(nèi)存虛擬化、網(wǎng)絡(luò)虛擬化、桌面虛擬化、服務(wù)虛擬化、虛擬機(jī)等等。.

Docker和傳統(tǒng)虛擬機(jī)的區(qū)別

特性

虛擬機(jī)的架構(gòu)

容器的架構(gòu)

啟動

分鐘級

秒級

性能

弱于原生

接近原生

硬盤使用

一般為GB

一般為MB

系統(tǒng)支持量

一般幾十個

單機(jī)上千個容器

2、Docker的安裝

2.1、Windows下的安裝

直接在官網(wǎng)下載windows包雙擊運(yùn)行即可,對于win10來說需要開啟Hype-v,直接百度打開即可。

2.2、Linux下的安裝

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun

# 安裝報錯 Problem: problem with installed package buildah
# 執(zhí)行語句 yum erase podman buildah 
# 再進(jìn)行安裝

systemctl status docker

systemctl restart docker

docker info

systemctl enable docker

# 建立docker組
sudo groupadd docker
sudo usermod -aG docker $USER

# 重啟服務(wù)
systemctl restart docker

2.3、核心概念

  1. 倉庫
    • 遠(yuǎn)程倉庫:開發(fā)者鏡像及官方鏡像
    • 本地倉庫:只保存當(dāng)前自己使用過的鏡像及自定義鏡像
    • 作用:用來存放docker鏡像位置
  2. 鏡像
    • 作用:一個鏡像就代表一個軟件
  3. 容器
    • 作用:一個幢像運(yùn)行一次就會生成一個實例就是生成一個容器

2.4、Aliyun服務(wù)加速

docker提供了一個遠(yuǎn)程倉庫,主要是用來存放鏡像的,而我們所需要的鏡像都需要去遠(yuǎn)程倉庫進(jìn)行拉取,dockerHub 地址:https://registry.hub.docker.com/_/mysql?tab=tags,這里以mysql鏡像為例,然后直接在虛擬機(jī)當(dāng)中執(zhí)行命令

# 獲取最新版本的mysql
docker pull mysql

# 獲取指定版本的mysql 8.0.18版
docker pull mysql:8.0.18

在這里的dockerhub是為全球服務(wù)的,速度難免會有點慢,這里可以配置阿里的鏡像來進(jìn)行獲取docker遠(yuǎn)程倉庫的鏡像。阿里云服務(wù)加速配置https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors ,按照官網(wǎng)進(jìn)行配置即可:

docker-compose和docker,java,docker,容器,運(yùn)維,后端,maven
3、Docker的操作

3.1、Hello World

在安裝docker之后,直接使用命令:docker run hello-world 表示直接運(yùn)行hello-world這個鏡像。而他的執(zhí)行基本步驟如下:

docker-compose和docker,java,docker,容器,運(yùn)維,后端,maven
3.2、Docker 的基本命令

3.2.1、docker引擎及幫助操作:

# 查看docker信息
docker info

# 查看docker版本
docker version

# 幫助命令
docker --help

3.2.2、鏡像相關(guān)操作:

# 查看鏡像
docker images
docker images -a #展示所有鏡像
docker images -q #只展示鏡像的ID
docker images mysql #只展示mysql鏡像

# 下載鏡像
docker pull 鏡像名稱:版本號  # 如 docker pull mysql:8.0.27
docker pull 鏡像名稱:@DIGEST
#如:docker pull mysql:DIGEST:sha256:975b3b1a6df6bf66221d1702b76c4141a4cd09f93f22f70c32edc99a6c256fe8

# 搜索鏡像
docker search 鏡像
# docker search mysql
# 搜索stars數(shù)在3000以上的image
docker search mysql --filter=stars=3000


# 刪除鏡像
docker image rm 鏡像名:版本或者id標(biāo)識 # docker image rm mysql:8.0.27
docker image rm -f 鏡像名:版本或者id標(biāo)識 # 強(qiáng)制刪除
# 簡化刪除
docker rmi 鏡像名:版本

# 組合運(yùn)用
# 清空本地倉庫所有鏡像
docker rmi -f $(docker images -q)

3.2.3、容器相關(guān)操作:

# 導(dǎo)入本地鏡像
docker load -i 鏡像文件

# 運(yùn)行一個容器
docker run 鏡像名稱:版本號
# 運(yùn)行容器與宿主機(jī)進(jìn)行映射
docker run -p 8080:8080 鏡像名稱:版本號
# 啟動容器映射端口,后臺啟動
docker run -p 8080:8080 -d 鏡像名稱:版本號
# 啟動容器映射端口,后臺啟動,指定名稱
docker run -p 8080:8080 --name 容器名稱 -d 鏡像名稱:版本號

# 查看正在運(yùn)行的容器
docker ps
# 查看運(yùn)行容器的歷史記錄
docker ps -a
# 查看最近運(yùn)行的兩個容器
docker ps -a -n=2
# 查看正在運(yùn)行的容器id
docker ps -q
# 查看所有容器的id
docker ps -aq

# 容器的啟動和停止
docker start 容器名稱或者容器id 
docker restart 容器名稱或者容器id 
docker stop 容器名稱或者容器id 
docker kill 容器名稱或者容器id 

# 容器的刪除
docker rm 容器的id或者名稱
docker rm -f 容器的id或者名稱
docker rm -f $(docker ps -aq)

# 查看日志
docker logs 容器id或名稱
# 實時展示日志
docker logs -f 容器id或名稱
# 加入時間戳展示實時展示日志
docker logs -tf 容器id或名稱
# 查看最后n行日志
docker logs --tail 5 容器id或名稱

# 查看容器的內(nèi)部進(jìn)程
docker top 容器id或名稱

# 與容器內(nèi)部進(jìn)行交互
docker exec -it 容器id或名稱 bash

# 從容器復(fù)制文件到操作系統(tǒng)
docker cp 容器id:路徑 操作系統(tǒng)下的路徑
# 從操作系統(tǒng)復(fù)制文件到容器當(dāng)中
docker cp 操作系統(tǒng)下的路徑 容器id:路徑

在這里的文件復(fù)制主要還是運(yùn)用到本地項目打包后的部署,比如說這里一個項目開發(fā)完成之后,打成一個jar包或者war包,丟給tomcat進(jìn)行啟動部署,而后直接將這個包給到tomcat鏡像下的webapps目錄下,重新啟動tomcat或者重啟容器,最后進(jìn)行訪問項目。

# 查看容器中的元數(shù)據(jù)
docker inspect 容器id

# 數(shù)據(jù)卷(Volume):實現(xiàn)宿主機(jī)系統(tǒng)和容器之間的文件共享
# 數(shù)據(jù)卷的使用:
docker run -d -p 8080:8080 --name 容器名稱 -v 操作系統(tǒng)下路徑:容器下路徑 鏡像名稱:版本

# aa代表一個數(shù)據(jù)卷的名字,名稱可以自定義,docker在不存在時自動創(chuàng)建這個數(shù)據(jù)卷,并且同時自動映射宿主機(jī)當(dāng)中的某個目錄
# 同時在啟動容器的時候會將aa對應(yīng)容器目錄中全部內(nèi)容復(fù)制到aa映射目錄當(dāng)中
docker run -d -p 8080:8080 --name 容器名稱  -v aa:容器下路徑 鏡像名稱:版本

find / -name aa

# 將容器打成一個新的鏡像
docker commit -m "描述信息" -a "作者信息" 容器id或名稱 打包的鏡像名稱:標(biāo)簽版本

# 將鏡像備份出來
docker save 鏡像名稱:版本 -o 文件名
# 重新加載鏡像
docker load -i 鏡像文件

3.3、Docker 鏡像分層原理

鏡像是一種輕量級的,可執(zhí)行的獨(dú)立軟件包,用來打包軟件運(yùn)行環(huán)境和基于運(yùn)行環(huán)境開發(fā)的軟件,它包含運(yùn)行某個軟件所需的所有內(nèi)容,包括代碼、運(yùn)行時所需的庫、環(huán)境變量和配置文件。

Docker當(dāng)中的鏡像為什么這莫大?

Docker的設(shè)計:一個軟件鏡像不僅僅是原來軟件包,鏡像當(dāng)中還包含軟件包所需的操作系統(tǒng)依賴軟件自身依賴以及自身軟件包組成。

分層原理

很顯然,在這里docker容器的設(shè)計簡單來說,對于不同的環(huán)境都給抽離出來進(jìn)行分層,就比如說很多的軟件服務(wù)(比如說:Naocs、ES、Hadoop等等)都需要jdk的環(huán)境,那再進(jìn)行拉取鏡像的時候,這些鏡像都會先檢驗jdk的環(huán)境,再進(jìn)行后續(xù)的安裝,那這里裝個Naocs、ES、Hadoop要下載三次JDK,這顯然浪費(fèi)了很多的內(nèi)存,所以在這里Docker采用了分層的原理,這里每一層的環(huán)境依賴都給分開了,再一次安裝了jdk環(huán)境之后,后續(xù)安裝的服務(wù)也要jdk依賴就不會再去拉取了,回直接使用本地有的jdk環(huán)境。

3.4、Docker 網(wǎng)絡(luò)

在docker當(dāng)中容器和容器之間也是可以進(jìn)行通信的。就好比Linux中我們使用 ip addr 可以看到當(dāng)前虛擬機(jī)的ip地址,在這里可以查看一下容器中的IP,docker exec -it 容器名 ip addr 會發(fā)現(xiàn)有一個對應(yīng)的映射另一個映射。說明docker容器網(wǎng)絡(luò)是通過veth-pair技術(shù)實現(xiàn)的。

并且在這里還可以通過docker inspect 容器名稱或id 命令查看容器的元數(shù)據(jù),這里也有該容器隨機(jī)分配的ip地址。

而當(dāng)我們啟動多個容器之后,可以查看多個容器的ip地址,可以看到容器的ip地址都在同一個網(wǎng)段上,這就有點似曾相識的感覺了,在linux當(dāng)中我們配置多臺機(jī)器進(jìn)行互相通信,那這里的容器通信那也是一樣的不,直接進(jìn)入到一臺容器之內(nèi),使用ping命令,ping另外一個容器的ip。

再就是在啟動容器之后,默認(rèn)為分配的ip地址都同一個網(wǎng)橋上,而這里容器當(dāng)中需要對網(wǎng)橋進(jìn)行分割開又要如何操作呢?我們需要創(chuàng)建一個網(wǎng)橋,而后在啟動容器的時候指定對應(yīng)的網(wǎng)橋即可。

# 查看網(wǎng)橋
docker network ls

# 創(chuàng)建網(wǎng)橋
docker network create 網(wǎng)橋名稱

# 容器指定網(wǎng)橋掛載
docker run -p -d 8080:8080 --network 網(wǎng)橋名稱 --name 容器名稱 鏡像:版本

# 在啟動容器,生成的ip地址會和容器名稱進(jìn)行映射,這里除了使用ip進(jìn)行訪問,還可以使用容器名稱進(jìn)行訪問

# 刪除
docker network rm 網(wǎng)橋名稱

# 網(wǎng)橋細(xì)節(jié)
docker inspect 網(wǎng)橋名稱

3.5、Docker 數(shù)據(jù)卷

3.5.1、作用

是用來實現(xiàn)容器和宿主機(jī)之間的數(shù)據(jù)共享

3.5.2:特點

  • 數(shù)據(jù)卷可以在容器之間進(jìn)行共享和重用
  • 對數(shù)據(jù)卷的修改會立即影響到對應(yīng)的容器
  • 對數(shù)據(jù)卷的修改不會影響鏡像
  • 數(shù)據(jù)卷默認(rèn)一直存在,即使容器被刪除

3.5.3、數(shù)據(jù)卷操作

# 自定義數(shù)據(jù)卷目錄
docker run -v 絕對路徑:容器內(nèi)路徑
# 自動創(chuàng)建數(shù)據(jù)卷
docker run -v 卷名:容器內(nèi)路徑

# 查看數(shù)據(jù)卷
docker volume ls
# 查看數(shù)據(jù)卷的細(xì)節(jié)
docker volume inspect 卷名
# 創(chuàng)建數(shù)據(jù)卷
docker volume create 卷名
# 刪除數(shù)據(jù)卷(沒有使用的數(shù)據(jù)卷)
docker volume prune
# 刪除指定的數(shù)據(jù)卷
docker volume rm 卷名

3.6、Docker 核心架構(gòu)

docker-compose和docker,java,docker,容器,運(yùn)維,后端,maven
4、Docker安裝服務(wù)

4.1、mysql 的安裝

首先我們需要確定服務(wù)的版本,拉取鏡像到本地:dockerHub 拉取鏡像描述文件 ,在鏡像的描述文件當(dāng)中,會對服務(wù)的啟動、查看服務(wù)日志、服務(wù)配置等等都有進(jìn)行描述。

# 先獲取mysql服務(wù)
docker pull mysql:8.0.18

服務(wù)的啟動:這里需要指定運(yùn)行的環(huán)境

# 基本啟動
docker run -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.18

# 啟動服務(wù) 后臺運(yùn)行 指定root用戶賬號密碼(設(shè)置root賬戶的密碼為root) 指定容器名稱
docker run -d -p 3307:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.18

# 啟動服務(wù) 后臺運(yùn)行 指定root用戶賬號密碼 指定容器名稱 使用數(shù)據(jù)卷將數(shù)據(jù)持久化
# mysql 容器默認(rèn)存儲位置:/var/lib/mysql
docker run -d -p 3307:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=root -d  -v mysqldata:/var/lib/mysql mysql:8.0.18

# 啟動服務(wù) 后臺運(yùn)行 指定root用戶賬號密碼 指定容器名稱 使用數(shù)據(jù)卷將數(shù)據(jù)持久化 已修改之后的配置文件啟動
docker run -d -p 3307:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=root -d  -v mysqldata:/var/lib/mysql -v mysqlconfig:/etc/mysql mysql:8.0.18

4.2、Tomcat 的安裝

# 先獲取鏡像
docker pull tomcat:9.0-jdk8

# 服務(wù)啟動
docker run -d -p 8080:8080 --name tomcat tomcat:9.0-jdk8

# 項目的部署目錄 /usr/local/tomcat/webapps
docker run -d -p 8080:8080 -v apps:/usr/local/tomcat/webapps --name tomcat tomcat:9.0-jdk8

# 配置文件目錄 /usr/local/tomcat/conf
docker run -d -p 8080:8080 -v apps:/usr/local/tomcat/webapps -v confs:/usr/local/tomcat/conf --name tomcat tomcat:9.0-jdk8

4.3、Redis的安裝

# 拉取鏡像
docker pull redis:6.2.6

# 啟動服務(wù)
docker run -d -p 6379:6379 --name redis6 redis:6.2.6

# redis 持久化
docker run -d --name redis6 redis:6.2.6 redis-server --appendonly yes

4.4、ElasticSearch 的安裝

5、Dockerfile

5.1、Dockerfile 概述

5.1.1、Dockerfile是什么?

Dockerfile是用來幫助自己構(gòu)建一個自定義鏡像

5.1.2、為什么會存在Dockerfile?

日常用戶可以將自己應(yīng)用進(jìn)行打包成鏡像,這樣就可以讓我們自己的應(yīng)用在容器當(dāng)中運(yùn)行

5.1.3、Dockerfile構(gòu)建鏡像原理

5.2、Dockerfile 語法

指令

說明

FROM

基礎(chǔ)鏡像,你指定的centos等等

MAINTAINER

鏡像創(chuàng)建者說明:一般姓名+郵箱

RUN

鏡像構(gòu)成的時候需要運(yùn)行的命令

ADD

用來添加內(nèi)容,比如MySQL,Tomcat等等

WORKDIR

鏡像的工作目錄

VOLUME

掛載的目錄

EXPOSE

暴露端口的設(shè)置

CMD

指定這個容器啟動的時候要運(yùn)行的命令,只運(yùn)行最后一個,即前面的會被后面的命令替換

ENTRYPOINT

指定這個容器啟動的時候要運(yùn)行的命令,可以追加命令

ONBUILD

當(dāng)構(gòu)建一個被繼承的DockerFile的時候,這個時候就會運(yùn)行 ONBUILD的指令

COPY

類似ADD命令,將文件copy到鏡像中

ENV

構(gòu)建的時候設(shè)置環(huán)境變量

FROM:構(gòu)建一個自定義的鏡像

# 新建一個dockerfile文件
vim Dockerfile
# 寫入內(nèi)容
FROM centos:8
# 進(jìn)行build
docker build -t mycentos8:01 .

# RUN : 對鏡像進(jìn)行擴(kuò)展
docker run -it centos:7
# 不支持vim,對于vim的擴(kuò)展,在原本的dockerfile文件當(dāng)中加入
RUN yum install -y vim
# 或者使用這種語法
RUN ["yum","install","-y","vim"]

# EXPORT : 鏡像暴露端口
EXPOSE 8888

#指定工作目錄
WORKDIR /data

# 復(fù)制文件
COPY aa.txt /data/aa

# 添加內(nèi)容
ADD bb.txt /data/bb
ADD 下載地址 /data/tomcat

5.3、idea對Dockerfile支持

打開idea的settings,在以來當(dāng)中找到docker的依賴,進(jìn)行安裝該依賴,安裝之后重啟idea就可以對Dockerfile文件進(jìn)行編輯了。

docker-compose和docker,java,docker,容器,運(yùn)維,后端,maven
第二個就是,Dockerfile文件都在linux上,在idea當(dāng)中怎么進(jìn)行編輯呢,可以選擇Tools下的deployment的browse remote host 進(jìn)行連接遠(yuǎn)程虛擬機(jī),這里直接連接上去之后在右側(cè)就會有虛擬機(jī)上的文件目錄信息,并且可以直接在idea當(dāng)中進(jìn)行打開了。

docker-compose和docker,java,docker,容器,運(yùn)維,后端,maven

6、Docker compose

6.1、Docker compose 概述

6.1.1、compose的作用

用來負(fù)責(zé)對Docker容器集群的快速編排

6.1.2、compose的定位

是用來定義和運(yùn)行多個docker容器的應(yīng)用 同時可以對多個容器進(jìn)行編排

6.1.3、compose的核心概念

  • 服務(wù):一個應(yīng)用的容器,服務(wù)可以存在多個
  • 項目:由一組關(guān)聯(lián)的應(yīng)用容器組成的一個完整業(yè)務(wù)單元,在docker-compose.yml文件當(dāng)中進(jìn)行定義

6.1.4、compose的安裝

github下載地址:https://github.com/docker/compose/releases

首先在github上面下載對應(yīng)的版本包,下載之后將包上傳到linux服務(wù)器上。將文件進(jìn)行重命名并且復(fù)制到/usr/local/bin目錄下,并且給該目錄賦予權(quán)限。最后直接使用docker-compose -v命令查看版本進(jìn)行校驗是否安裝成功

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v

6.1.5、docker和docker-compose直接的版本對應(yīng)

docker官網(wǎng)地址:https://docs.docker.com/compose/compose-file/

使用命令 docker -v 查看docker的版本,可以在官網(wǎng)當(dāng)中看到compose對docker版本的支持

docker-compose和docker,java,docker,容器,運(yùn)維,后端,maven
6.2、Docker compose —— HelloWorld

在前面有說到compose當(dāng)中的組成部分,分別是服務(wù)和項目,這里首先創(chuàng)建一個目錄用來表示這第一個helloworld項目,在項目當(dāng)中添加docker-compose.yml文件用來編寫compose。

# 創(chuàng)建目錄
mkdir hello
cd hello

# 新建docker-compose.yml文件
vim docker-compose.yml

# 寫入內(nèi)容(這里在vim當(dāng)中編輯yml文件挺難受的,可以在idea當(dāng)中編輯遠(yuǎn)程主機(jī)的文件)
version: "3.0"    # 指定compose的版本
services:         # 指定服務(wù)
  tomcat:         # 單個服務(wù)
    image: tomcat:9.0.27-jdk8     # 服務(wù)鏡像
    ports:
      - 8081:8080                 # 暴露對應(yīng)的端口

# 保持文件內(nèi)容后進(jìn)行啟動compose
docker-compose up

# 服務(wù)啟動之后,可以直接進(jìn)行訪問8081端口
http://遠(yuǎn)程主機(jī)ip/8081

6.3、Docker compose —— 命令模板

version: "3.0"		# compose版本
services:
  user:
    build:
      context: user					# dockerfile的鏡像
      dockerfile: Dockerfile		# 讀取dockerfile文件進(jìn)行打包獲取鏡像
    container_name: user
    ports:
      - "8888:8888"
    networks:
      - hello
    depends_on:
      - tomcat

  tomcat:			# 單個服務(wù)標(biāo)識
    container_name: tomcat			# 啟動后的容器名稱 相當(dāng)于 --name 指定的名稱
    image: tomcat:9.0.27-jdk8		# 鏡像
    ports:
      - 8081:8080					# 端口映射
    volumes:
      - tomcatwebapps:/usr/local/tomcat/webapps		# 指定對應(yīng)的數(shù)據(jù)卷
    networks:
      - hello										# 指定網(wǎng)橋
    depends_on:										# 服務(wù)啟動依賴
      - tomcat1										# 服務(wù)標(biāo)識
      - mysql
    healthcheck:									# 健康檢查
      test: ['CMD','curl','-f','http://localhost']
      interval: 1m30s
      timeout: 10s
      retries: 3
    sysctls:										# 修改內(nèi)核參數(shù)
      - net.core.somaxconn=1024
      - net.ipv4.tcp_syncookies=0
	ulimits:										# 修改最大進(jìn)程數(shù)
      nproc: 65335
      nofile:
        soft: 20000
        hard: 40000
        
  tomcat1:
    container_name: tomcat2
    image: tomcat:9.0.27-jdk8
    ports:
    - 8082:8080
    volumes:
    - tomcatwebapps1:/usr/local/tomcat/webapps
    networks:
    - hello

  mysql:
    container_name: mysql8
    image: mysql:8.0.18
    ports:
      - 3307:3306
#    environment:							# 指定啟動的環(huán)境
#      - MYSQL_ROOT_PASSWORD=root
    env_file:								# 使用文件進(jìn)行代替
      - ./mysql.env							# mysql.evn文件內(nèi)容就是 MYSQL_ROOT_PASSWORD=root
    volumes:
      - mysqldata:/var/lib/mysql
      - mysqlconfig:/etc/mysql
    networks:
      - hello

# 數(shù)據(jù)卷都要在這統(tǒng)計管理
volumes:
  tomcatwebapps:
  tomcatwebapps1:
#    external:		# 使用自定義數(shù)據(jù)卷名稱 默認(rèn)命名為 項目名_數(shù)據(jù)卷名  自定義后為 數(shù)據(jù)卷名
#      true
  mysqldata:
  mysqlconfig:

# 統(tǒng)一管理網(wǎng)橋
networks:
  hello:

6.4、Docker compose 指令

6.4.1、模板指令與指令

  • 模板指令:用來書寫在docker-compose.yml文件當(dāng)中的指令,是用來為服務(wù)進(jìn)行服務(wù)的
  • 指令:用來對整個docker-compose.yml對應(yīng)的這個項目進(jìn)行操作

6.4.2、常用指令

指令

說明

up

用來啟動所有的docker-compose服務(wù)
-f :表示指定啟動的文件名
-d:表示后臺啟動
docker-compose up -f yml文件名 -d

down

用來停止服務(wù)
docker-compose down

exec

進(jìn)入容器
docker-compose exec 服務(wù)id bash

ps

查看所有運(yùn)行的服務(wù)
docker-compose ps

restart

重啟所有服務(wù)
加服務(wù)id 表示重啟單個服務(wù)
docker-compose restart 服務(wù)id

rm

刪除服務(wù)
加服務(wù)id 刪除單個服務(wù)
-fv 強(qiáng)制刪除(v 包括數(shù)據(jù)卷)
docker-compose -fv 服務(wù)id

start

用來啟動服務(wù)
docker-compose start 服務(wù)id

stop

停止服務(wù)
docker-compose stop 服務(wù)id

top

查看容器內(nèi)運(yùn)行的進(jìn)程
docker-compose top 服務(wù)id

pause

暫停服務(wù)
docker-compose pause 服務(wù)id

unpuase

開啟服務(wù)
docker-compose unpause 服務(wù)id

logs

查看日志
docker-compose logs 服務(wù)id

6.5、Docker 可視化工具 —— portainer

直接在dockerHub上面拉取鏡像啟動服務(wù)

docker pull portainer/portainer:1.24.2

docker run -d 
	-p 8000:8000 
	-p 9000:9000 
	--name=portainer 
	--restart=always 
	-v /var/run/docker.sock:/var/run/docker.sock 
	-v portainer_data:/data 
	portainer/portainer:1.24.2

直接訪問遠(yuǎn)程虛擬機(jī)的9000端口,注冊一個賬號,鏈接到本地虛擬機(jī)的服務(wù),就可以看到所提供的web可視化頁面了。

docker-compose和docker,java,docker,容器,運(yùn)維,后端,maven
同樣的我們還可以將這個服務(wù)的啟動加到docker-componse當(dāng)中進(jìn)行啟動:文章來源地址http://www.zghlxwxcb.cn/news/detail-821861.html

# 加入服務(wù)
  portainer:
    container_name: portainer
    image: portainer/portainer:1.24.2
    ports:
      - 8000:8000
      - 9000:9000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
      
# 數(shù)據(jù)卷
volumes:
  portainer_data:

到了這里,關(guān)于Docker與Docker-Compose詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【六祎 - Docker】Docker-compose;什么是Docker-compose

    從 2023 年 6 月底開始,Compose V1 將不再受支持,并將從所有 Docker Desktop 版本中刪除。 確保使用 docker compose CLI 插件或通過激活 Docker Desktop 中的 Use Docker Compose V2 設(shè)置切換到 Compose V2。有關(guān)詳細(xì)信息,請參閱 Compose 的演變。 Compose 是一個用于定義和運(yùn)行多容器 Docker 應(yīng)用程序的工

    2023年04月21日
    瀏覽(58)
  • 【docker】 docker-compose如何更新services鏡像 | docker-compose如何更新某個鏡像 | docker-compose如何重啟某個服務(wù)

    更新鏡像: 首先,確保你已經(jīng)獲取了最新的鏡像版本。這可以通過 docker pull 命令來實現(xiàn),或者直接使用 docker-compose pull 命令更新所有服務(wù)的鏡像。 拉取 指定 鏡像 - 代碼如下: 拉取 所有 鏡像 - 代碼如下: 注意:在拉取更新的鏡像后,docker-compose不會自動重新啟動服務(wù)。你需要

    2024年02月06日
    瀏覽(32)
  • 使用docker-compose部署RocketMQ5.x 單機(jī)部署+配置參數(shù)詳解

    使用docker-compose部署RocketMQ5.x 單機(jī)部署+配置參數(shù)詳解

    提前先拉取需要的鏡像文件,避免后面部署的時候出現(xiàn)鏡像拉取失敗的問題。 鏡像地址: https://hub.docker.com/r/apache/rocketmq/tags 我在部署的時候最新發(fā)行版是5.1.0可以根據(jù)需求自行選擇一個5.x的版本,部署流程不會有太大改變。 拉取最新版即可 這里使用compose v2版本 1、下載(使

    2024年02月08日
    瀏覽(48)
  • docker-compose build 和 docker-compose up -d 的區(qū)別

    docker-compose build 命令用于構(gòu)建 Docker Compose 文件中定義的服務(wù)的鏡像,根據(jù) docker-compose.yml 文件中的配置信息,構(gòu)建需要的鏡像并且將它們打上標(biāo)簽。構(gòu)建鏡像是一個比較耗時的過程,可能需要從 Docker Hub 上拉取鏡像、下載依賴等,而且在構(gòu)建完成后不會啟動容器。 docker-comp

    2024年02月13日
    瀏覽(28)
  • Docker部署RocketMQ5.x (單機(jī)部署+配置參數(shù)詳解+不使用docker-compose直接部署)

    Docker部署RocketMQ5.x (單機(jī)部署+配置參數(shù)詳解+不使用docker-compose直接部署)

    官網(wǎng)地址:https://rocketmq.apache.org/ 鏡像地址: https://hub.docker.com/r/apache/rocketmq/tags 我在部署的時候最新發(fā)行版是5.1.0可以根據(jù)需求自行選擇一個5.x的版本,部署流程不會有太大改變。 NameServer是一個簡單的 Topic 路由注冊中心,支持 Topic、Broker 的動態(tài)注冊與發(fā)現(xiàn),幾乎無狀態(tài)節(jié)點

    2024年02月06日
    瀏覽(28)
  • docker-compose和docker compose的區(qū)別

    docker-compose和docker compose的區(qū)別

    在docker實際使用中,經(jīng)常會搭配Compose,用來定義和運(yùn)行多個 Docker 容器。使用時會發(fā)現(xiàn),有時候的指令是docker-compose,有時候是docker compose,下面給出解釋。 docker官方文檔:https://docs.docker.com/compose/install/linux/ 官方文檔中其實已經(jīng)給出了答案:Compose分為V1和V2版本,安裝方式分

    2024年01月19日
    瀏覽(21)
  • 【Docker-compose】基于Docker-compose創(chuàng)建LNMP環(huán)境并運(yùn)行Wordpress網(wǎng)站平臺

    【Docker-compose】基于Docker-compose創(chuàng)建LNMP環(huán)境并運(yùn)行Wordpress網(wǎng)站平臺

    參見使用Docker構(gòu)建LNMP環(huán)境并運(yùn)行Wordpress網(wǎng)站平臺 Docker-Compose將所管理的容器分為三層,分別是 項目(project)、服務(wù)(service)以及容器(container) 。 Docker-Compose運(yùn)行目錄下的所有文件組成一個項目, 若無特殊指定項目名即為當(dāng)前目錄名 。 一個工程當(dāng)中可包含多個服務(wù),每個

    2024年02月15日
    瀏覽(20)
  • docker-compose up -d和docker-compose up --build的補(bǔ)充

    docker-compose up -d 命令用于啟動已定義在 docker-compose.yml 文件中的服務(wù)容器,并以守護(hù)進(jìn)程的方式在后臺運(yùn)行。 具體解釋如下: docker-compose : 是一個用于定義和運(yùn)行多個容器應(yīng)用的工具。 up : 用于創(chuàng)建并啟動容器。 -d 或 --detach : 表示以守護(hù)進(jìn)程的方式運(yùn)行容器,即在后臺運(yùn)行,

    2024年02月15日
    瀏覽(51)
  • docker-compose

    Docker-Compose?項目由 Python 編寫,調(diào)用 Docker 服務(wù)提供的 API 來對容器進(jìn)行管理。因此,只要所操作的平臺支持 Docker API,就可以在其上利用 Compose 來進(jìn)行編排管理 1. Dockerfile 與服務(wù)編排 ?我們知道使用一個 Dockerfile 模板文件可以定義一個單獨(dú)的應(yīng)用容器,如果需要定義多個容器

    2024年02月03日
    瀏覽(17)
  • 【Docker-Compose】

    Dockerfile模板可以定義一個單獨(dú)的應(yīng)用容器,若需要定義多個容器就需要服務(wù)編排。 Dockerfile可以讓用戶管理一個單獨(dú)的應(yīng)用容器,而compose允許用戶在一個模板(YAML格式)中定義一組相關(guān)應(yīng)用容器(被稱為一個項目)。 Docker-Compose是Docker官方的開源項目,負(fù)責(zé)實現(xiàn)對Docker容器

    2024年02月11日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包