docker
docker安装
linux安装
#1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker ,通过 uname -r 命令查看你当前的内核版本:
$ uname -r
#2.使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
#3.卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
#4.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#5.设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#6.可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
#7.安装docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
yum install docker-ce -y # 安装最新版本
#显示已安装,完毕 安装完成
#8.启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
#9.验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
[!WARNING]
注意事项:
#1.因为之前已经安装过旧版本的docker,在安装的时候报错如下:
Transaction check error:
file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
#2.卸载旧版本的包
$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
#3.再次安装docker
$ sudo yum install docker-ce
离线安装部署docker
#先下载docker安装包
#下载地址:https://download.docker.com/linux/static/stable/x86_64/
d2ee36bf614d2104e72d612e5df39983 *./docker-20.10.22.tgz
dcccb711f981286cce767a56dbc7e044 *./docker.service
c052af2d53231cd5c23dca8e7cfc575f *./docker.socket
#上传到目的服务器再解压安装
#解压
tar xzvf docker-20.10.22.tgz
#拷贝
cp docker/* /usr/bin/
#临时启动检查服务是否正常
dockerd &
#安装系统服务
cp docker.socket /etc/systemd/system
cp docker.service /etc/systemd/system
systemctl daemon-reload
systemctl start docker
systemctl enable docker
在线部署docker
# 服务器下载 docker,并启动服务
yum install -y docker
systemctl daemon-reload
systemctl restart docker.service
windos安装docker-desktop
[!WARNING]
win11没有hyper-v
# 以下文件保存记事本,然后重命名为*.bat
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause
# 然后右键,以管理员身份运行:
# 1、BIOS开启虚拟化
# 2、控制面板,windos更新程序,启用Hyper-V&子系统&虚拟机平台
# 3、下载 适用于 x64 计算机的 WSL2 Linux 内核更新包,下载完成后,双击打开安装即可
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
# 4、下载docker-desktop安装包:
https://www.docker.com/products/docker-desktop/
https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exe
# 更改安装位置:1.可以设置代理文件夹,2.cmd执行安装
start /w "" "Docker Desktop Installer.exe" install --installation-dir=E:\Docker
start /w "" "Docker_Desktop_Installer.exe" install --installation-dir=E:\application\docker
# 24年4月,新版安装后第一次打开需要开科技,否则会很慢
# 安装完成后可以修改镜像源为阿里源
在国内从官方的DockerHub拉取镜像经常会比较感人,所以我们需要利用国内的镜像源或者加速器
科大镜像:https://docker.mirrors.ustc.edu.cn/
网易:https://hub-mirror.c.163.com/
Docker Engine:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://registry.hub.docker.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
],
"insecure-registries": [],
"debug": true,
"experimental": false
}
# 默认 安装完成的两个wsl镜像位置C:\Users\wuchaozhi\AppData\Local\Docker\wsl\distro
# 安装完成后可以修改默认安装位置
# 1、清空方法:Docker右上角小虫子(Troubleshoot)- Clean / Purge data,弹出窗口全部打勾
# 清空后Docker内所有镜像消失,之前的hello-world也消失,此时先选择好自己想要迁移到哪里,比如D盘,然后新建文件夹,比如DockerImages,打开以后在里面继续创建两个文件夹:docker-desktop和docker-desktop-data,名字不用完全一致,只是为了好区分。创建这两个文件夹的原因是在Terminal中之前看到的docker-desktop和docker-desktop-data一个存放程序,一个存放镜像,路径不能一样。然后把Docker完全退出!否则会出问题!
wsl --list --verbose
# 2、接下来在Terminal操作:
wsl --export docker-desktop docker-desktop.tar
wsl --export docker-desktop-data docker-desktop-data.tar
# 然后注销docker的wsl子系统
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
# 再在新位置重新创建
wsl --import docker-desktop E:\DockerImages\docker-desktop docker-desktop.tar --version 2
wsl --import docker-desktop-data E:\DockerImages\docker-desktop-data docker-desktop-data.tar --version 2
# 修改容器保存位置完成
## 注意:docker-desktop镜像好像没有办法迁移了,试了多次一启动,C盘就会自动恢复镜像,后面观察
安装过程注意事项
[!WARNING]
日志位置:%LOCALAPPDATA%\Docker\log
整体应用相关文件路径:
C:\ProgramData\DockerDesktop\pki
C:\Users<user_name>\AppData\Local\Docker\pki
部署指南2:(没有验证过)
以下是在Windows 10上使用WSL安装Kubernetes的步骤:
启用WSL:
- 打开PowerShell(管理员)
- 运行
wsl --install安装Linux发行版(如Ubuntu):
- 在Microsoft Store中搜索并安装Linux发行版(如Ubuntu)
- 启动已安装的发行版(例如,通过Microsoft Store或搜索Ubuntu并运行它)
更新Linux系统并安装Docker:
- 更新软件包列表:
sudo apt-get update- 安装Docker:
sudo apt-get install docker.io安装kubectl:
下载最新的kubectl二进制文件:
curl -LO https://storage.googleapis.com/kubernetes-release/release/curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt/bin/linux/amd64/kubectl使kubectl可执行:
chmod +x ./kubectl将kubectl移动到PATH:
sudo mv ./kubectl /usr/local/bin/kubectl安装Minikube:
下载Minikube二进制文件:
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64使Minikube可执行:
chmod +x minikube移动Minikube到PATH:
sudo mv minikube /usr/local/bin/启动Minikube:
- 运行
minikube start请注意,这只是一个基本的安装指南。在实际生产环境中,Kubernetes通常运行在由多个Linux服务器组成的集群上,而不是在单个Windows系统上。
docker使用
docker常用命令
启动docker [root@localhost ~]# systemctl start docker
开机启动docker [root@localhost ~]# systemctl enable docker
停止docker [root@localhost ~]# systemctl stop docker
查看docker的版本
[root@localhost ~]# docker -v
Docker version 1.13.1, build 64e9980/1.13.1
查看全部环境里镜像
docker images
搜索镜像 [root@localhost ~]# docker search 关键字
拉取镜像(去docker hub上检索镜像的详细信息 :tag是可选的,tag表示标签,多为软件的版本,默认是latest) [root@localhost ~]# docker pull 镜像名:tag
搜索镜像 [root@localhost ~]# docker search 关键字
拉取镜像(去docker hub上检索镜像的详细信息 :tag是可选的,tag表示标签,多为软件的版本,默认是latest) [root@localhost ~]# docker pull 镜像名:tag
根据镜像创建一个容器 --name:后面接要给容器取的名字,以此为例,如果不写--name tomcat01,系统会自动取名 :last是默认版本,不写也可以 [root@localhost ~]# docker run --name tomcat01 -d tomcat:latest
启动容器(CONTAINER-ID:指定容器的id) [root@localhost ~]# docker start CONTAINER-ID
停止运行中的容器 [root@localhost ~]# docker stop CONTAINER-ID
删除指定容器 [root@localhost ~]# docker rm CONTAINER-ID
查看运行中的容器 [root@localhost ~]# docker ps
查看所有的容器 [root@localhost ~]# docker ps -a
查看指定容器的错误日志(CONTAINER-ID:指定容器的id) [root@localhost ~]# docker logs CONTAINER-ID
为容器做端口映射(以tomcat为例,运行以下命令后可以访问linux的IP地址:8888) -d:后台运行 -p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口 [root@localhost ~]# docker run -d -p 8888:8080 tomcat
查看防火墙状态
[root@localhost ~]# service firewalld status
关闭防火墙
[root@localhost ~]# service firewalld stop
进入容器
docker exec -it 容器ID bashShell
从容器拷贝文件到宿主机
docker cp 容器ID:容器内路径 目的主机路径
导出容器
docker export 容器ID > 文件名.tar
导入容器
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
创建容器并映射宿主机文件
docker run -d --name prometheus -p 9090:9090 -v /宿主机路径:/容器路径
docker部署示例
docker部署监控服务来springboot项目
1.Spring Boot 工程集成 Micrometer
1.1引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
1.2配置
management.server.port=9003
management.endpoints.web.exposure.include=*
management.endpoint.metrics.enabled=true
management.endpoint.health.show-details=always
management.endpoint.health.probes.enabled=true
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
management.metrics.tags.application=voice-qc-backend
这里 management.endpoints.web.exposure.include=* 配置为开启 Actuator 服务,因为Spring Boot Actuator 会自动配置一个 URL 为 /actuator/Prometheus 的 HTTP 服务来供 Prometheus 抓取数据,不过默认该服务是关闭的,该配置将打开所有的 Actuator 服务。
management.metrics.tags.application 配置会将该工程应用名称添加到计量器注册表的 tag 中去,方便后边 Prometheus 根据应用名称来区分不同的服务。
1.3监控jvm信息
然后在工程启动主类中添加 Bean 如下来监控 JVM 性能指标信息:
@SpringBootApplication
public class GatewayDatumApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayDatumApplication.class, args);
}
@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(
@Value("${spring.application.name}") String applicationName) {
return (registry) -> registry.config().commonTags("application", applicationName);
}
}
在浏览器访问 http://127.0.0.1:9001/actuator/prometheus ,就可以看到服务的一系列不同类型 metrics 信息,例如jvm_memory_used_bytes gauge、jvm_gc_memory_promoted_bytes_total counter ,go_api_report_dial_request_count等
到此,Spring Boot 工程集成 Micrometer 就已经完成,接下里就要与 Prometheus 进行集成了。
2.集成 Prometheus
2.1安装
docker pull prom/prometheus
mdkir /usr/local/prometheus
vi prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "metricsLocalTest"
metrics_path: "/actuator/prometheus"
static_configs:
- targets: ["localhost:8080"]
# 运行Prometheus容器
docker run -d --name prometheus -p 9090:9090 -v /usr/local/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
3.使用 Grafana Dashboard 展示监控项
3.1安装grafana
docker pull grafana/grafana
docker run -d --name grafana -p 3000:3000 -v /usr/local/grafana:/var/lib/grafana grafana/grafana
默认用户名/密码 admin/admin
配置prometheus数据源
最后注意:各个容器里面配置的是ip而不是localhost,因为localhost代表的是容器本身,注意这点
镜像仓库
网易:http://hub-mirror.c.163.com
中科大镜像地址:http://mirrors.ustc.edu.cn/
中科大github地址:https://github.com/ustclug/mirrorrequest
Azure中国镜像地址:http://mirror.azure.cn/
Azure中国github地址:https://github.com/Azure/container-service-for-azure-china
DockerHub镜像仓库: https://hub.docker.com/
阿里云镜像仓库: https://cr.console.aliyun.com
google镜像仓库: https://console.cloud.google.com/gcr/images/google-containers/GLOBAL (如果你本地可以翻墙的话是可以连上去的 )
coreos镜像仓库: https://quay.io/repository/
RedHat镜像仓库: https://access.redhat.com/containers
国外搜索镜像的地址:https://hub.docker.com/
阿里加速镜像地址:https://ojfmpo6q.mirror.aliyuncs.com
C:\ProgramData\Docker\config\daemon.json
{
"registry-mirrors": ["https://<your_mirror>.mirror.aliyuncs.com"]
}
docker pull ojfmpo6q.mirror.aliyuncs.com/obsidiandynamics/kafdrop:3.30.0
{
"registry-mirrors": [
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io",
"https://docker.unsee.tech",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn",
"https://docker.chenby.cn",
"http://mirror.azure.cn",
"https://dockerpull.org",
"https://dockerhub.icu",
"https://hub.rat.dev"
]
}
制作容器镜像
运行一个基础镜像,并且保持运行不退出
docker run -d --name my-alpine-container alpine tail -f /dev/null
使用 commit 制作镜像
制作基础镜像
[!TIP]
在 commit 方法中,为了制作镜像,需要先利用基础镜像创建一个容器。接下来使用 docker run 创建容器 ubuntu-commit。
除此之外,再使用docker inspect 命令查看基础容器镜像的层信息。
docker run -itd --name ubuntu-commit ubuntu
docker inspect -f "{{json .RootFS.Layers}}" ubuntu | jq
查看容器修改内容
接下来对容器的内容进行修改,在容器中执行 apt-get update 命令修改容器中的文件。在文件修改之后,可以通过 docker diff 命令查看文件的修改详情,该命令格式为 docker diff 容器名。
docker exec ubuntu-commit apt-get update
docker diff ubuntu-commit
生成新的镜像
在前面的实验中,容器镜像的是以只读分层的方式进行存储的。当通过镜像创建容器之后,每一个容器都会生成一个可以编写的存储层,所有用户对容器的文件修改,都会记录在容器存储层中。当把容器镜像的只读层和容器存储层叠加起来之后,就得到了容器的完整存储内容。而 docker diff 命令查看的,正是容器存储层所保存的内容。
在了解容器存储层的相关知识之后,就可以执行 docker commit 命令生成新的镜像,其命令的格式为 docker commit 容器名 新镜像名。镜像生成之后使用 docker images 进行验证。
docker commit ubuntu-commit ub/commit
docker images
使用 build 制作镜像
除了通过 docker commit 命令,Docker还提供了另一种 docker build 的方式来构建容器镜像。
1、制作 Dockerfile 文件
要使用 docker build 的方式制作容器,需要先制作 Dockerfile 文件。Dockerfile 是纯文本文件,使用 vim 等纯文本文件编辑工具进行编写。接下来使用 vim 命令生成Dockerfile。注意使用 vim 编辑器时:
- 需要先按i键进入编辑模式。
- 编辑完成之后按esc退出编辑模式。
- 然后按大写的ZZ保存并退出vim。
vim Dockerfile
然后将下面的内容复制到Dockerfile中:
FROM ubuntu:latest
RUN apt-get update
2、制作容器镜像
Dockerfile 文件编写完毕后,就可以根据该文件,使用 docker build 命令来制作容器镜像,该命令的格式为docker build -t 容器镜像名 Dockerfile所在路径。命令的第三个参数用于指定 Dockerfile 文明的位置,如果Dockerfile 文件就在控制台的当前目录下,一般使用 . 来设置。
docker build -t ub/build .
docker images
Dockerfile 命令列表
Dockerfile文件的格式于脚本文件,每一行是一条命令,每行的格式为命令 参数。Dockerfile主要支持的命令如下表,因篇幅的原因,本实验中我们无法具体演示每一条指令的用法,只会讲解一些重要的命令,。
| FROM | 指定基础镜像,必须为第一个命令 |
|---|---|
| LABEL | 为镜像添加标签 |
| RUN | 构建时执行的命令行指令 |
| ADD | 将本地文件添加到容器中,如果为tar类型文件,则会自动解压,可以访问网络资源,类似wget(网络资源不会被解压) |
| COPY | 将本地文件添加到容器中,不会解压,也不可以访问网络资源 |
| CMD | 容器启动时执行的命令,只有最后一条可以生效,可以被docker run的启动命令覆盖。 |
| ENTRYPOINT | 容器启动时执行的入口,只有最后一条可以生效,一定会被执行,不可以被覆盖。 |
| EXPOSE | 设置默认开放的网络端口(后面的实验会涉及到) |
| VOLUME | 设置默认加载的VOLUME卷(后面的实验会涉及到) |
| ENV | 设置环境变量。 |
| WORKDIR | 设置默认的工作目录。 |
| USER | 设置容器运行时的用户。 |
| ONBUILD | 构建触发器,当此镜像被其他镜像用作基础镜像时,触发器会被执行。 |
| ARG | 设置构建参数,可以通过docker build --build-arg将参数从外部传到到Dockerfile构建过程中。 |
通过docker save和docker load命令构建
[!WARNING]
注意:docker save的镜像都不能导出对容器里文件的操作
docker save用来将镜像保存为一个 tar 文件,docker load用来将 tar 格式的镜像文件加载到当前机器上,例如:
# 在 A 机器上执行,并将 nginx-v1.0.0.tar.gz 复制到 B 机器
$ docker save nginx | gzip > nginx-v1.0.0.tar.gz
# 在 B 机器上执行
$ docker load -i nginx-v1.0.0.tar.gz
通过docker export和docker import命令构建
通过docker export 保存容器的镜像,再通过docker import 加载镜像,具体命令如下:
# 在 A 机器上执行,并将 nginx-v1.0.0.tar.gz 复制到 B 机器
$ docker export nginx > nginx-v1.0.0.tar.gz
# 在 B 机器上执行
$ docker import - nginx:v1.0.0 nginx-v1.0.0.tar.gz
12345
通过docker export导出的镜像和通过docker save保存的镜像相比,会丢失掉所有的镜像构建历史。在实际生产环境中,我不建议你通过docker save和docker export这两种方式来创建镜像。
较推荐的方式是:在 A 机器上将镜像 push 到镜像仓库,在 B 机器上从镜像仓库 pull 该镜像。
部署私人镜像仓库
在 Docker 中推送镜像的命令是 docker push,但是默认的 docker push 命令会将镜像推送到 docker 公共仓库。为了能将镜像推送到私人仓库,首先要使用 docker tag 命令为镜像设置需要推送的仓库信息。其命令的参数为docker tag [本地镜像名] [私有仓库的URL][私有仓库的镜像名称]。在标记镜像之后,使用 docker images 命令查看会发现,为本地镜像设置 tag 之后,会在本地镜像列表中生成一个新的镜像。
1、部署私人镜像仓库
首先学习如何启动docker私人镜像仓库。docker的默认私人镜像仓库 registry 应用也提供了镜像的部署方式。也就是说可以像启动其他容器一样的方式,本机用docker来启动默认的私有镜像仓库。当默认的私有镜像仓库启动之后,会使用http接口方式对外提供服务。
此处使用 --network=host 参数,指定容器在启动时使用Host网络模型。
docker run -d --network=host --name registry-1 registry
验证网络服务
当使用 Host网络模型 创建容器后,容器会和宿主机共享网络设置,这也就意味着容器中启动网络服务,同样可以在宿主机中使用127.0.0.1的网络地址访问。关于Host网络模型的详细用法,在后面的实验中还会有讲解。 当仓库容器启动后,会在 5000端口 启动服务。我们可以在宿主机中使用 netstat 命令验证。
netstat -tunple | grep 5000

测试服务
接下来验证私人仓库的http服务接口是否可用,通过 curl 命令验证仓库的运行,常用的验证地址为 [私人仓库IP]:5000/v2/_catalog 。通过验证我们发现私人镜像仓库服务已经启动。
curl 127.0.0.1:5000/v2/_catalog

向私有仓库中推送镜像
如何将本地 docker 中的镜像推送到私有仓库中。
为镜像设置仓库信息
默认的 docker push 命令会将容器推送到docker公共仓库,为了能将镜像推送到私人仓库,要使用 docker tag 命令为镜像设置需要推送的仓库信息。其命令的参数为 docker tag [本地镜像名] [私有仓库的URL][私有仓库的镜像名称]。标记镜像之后,使用 docker images 命令查看会发现,为本地镜像设置 tag 之后,会在本地镜像列表中生成一个新的镜像。
docker tag ub/commit 127.0.0.1:5000/ub/commit
docker images

向仓库推送镜像
通过 docker tag 命令生成新的镜像之后,就可以使用 docker push 将已经标记过的镜像,直接推送到私人仓库中。命令的参数为 docker push tag后的镜像名:镜像版本。
docker push 127.0.0.1:5000/ub/commit:latest

通过私有仓库API验证推送
当镜像上传到私人仓库之后。可以通过访问 curl [私人仓库IP]:5000/v2/_catalog 列出仓库中的镜像信息。同时还可以通过 curl [私人仓库IP]:5000/v2/[镜像名称]/list 来查看镜像的版本信息。
curl 127.0.0.1:5000/v2/_catalog
curl 127.0.0.1:5000/v2/ub/commit/tags/list

从私有仓库中拉取镜像
1、删除本地镜像
为了验证从私有仓库下载镜像,先通过 docker rmi 命令删除本地的容器镜像。
docker rmi ub/commit
docker rmi 127.0.0.1:5000/ub/commit

2、从私有仓库中拉取镜像
当通过 docker push 将镜像推送到私人仓库之后。其他人就可以通过 docker pull 命令将其拉取到本地。拉取私有仓库镜像的命令格式为 docker pull [私有仓库的URL][私有仓库的镜像名称]。
docker pull 127.0.0.1:5000/ub/commit
docker images
3、查看本地镜像信息
对于已经拉取到本地的容器镜像,可以通过 docker inspcet 来查看镜像的仓库信息和 repo tag 信息。在使用docker inspcet命令时,可以使用 -f 参数进行信息过滤,具体的过滤语法会在后面的实验中详细讲解。
docker inspect -f \ "{\"RepoTags\":{{json .RepoTags}}, \"RepoDigests\":{{json .RepoDigests}}}" \ 127.0.0.1:5000/ub/commit | jq
docker-compose
docker-compose命令
// 启动一个docker组
docker-compose -p {name} up -d
---- 重新部署docker组
// 停止docker
docker-compose -p {name} down
docker-compose -p {name} up -d
// 查看运行状态
docker-compose ps
// 查看实时日志
docker-compose logs -f
// 停止并移除所有服务
docker-compose down -v
Docker--harbor私有仓库部署
# 从国内源拉取镜像
docker pull registry.docker-cn.com/library/harbor:2.5.0
# 标记镜像为你的 Harbor 实例
docker tag registry.docker-cn.com/library/harbor:2.5.0 your-harbor-host/library/harbor:2.5.0
# 推送镜像到你的 Harbor 实例
docker push your-harbor-host/library/harbor:2.5.0
阿里私有镜像仓库
# 登录命令
docker login --username=1634255313abc crpi-p8k0mnyihsth1omv.cn-beijing.personal.cr.aliyuncs.com
# 从镜像仓库拉取镜像
docker pull crpi-p8k0mnyihsth1omv.cn-beijing.personal.cr.aliyuncs.com/seeyon1/work:[镜像版本号]
# 推送镜像仓库到远程
$ docker login --username=1634255313abc crpi-p8k0mnyihsth1omv.cn-beijing.personal.cr.aliyuncs.com
$ docker tag [ImageId] crpi-p8k0mnyihsth1omv.cn-beijing.personal.cr.aliyuncs.com/seeyon1/work:[镜像版本号]
$ docker push crpi-p8k0mnyihsth1omv.cn-beijing.personal.cr.aliyuncs.com/seeyon1/work:[镜像版本号]