|
|
|
@ -2,9 +2,9 @@
|
|
|
|
|
|
|
|
|
|
# $Docker$使用方法
|
|
|
|
|
|
|
|
|
|
### 一、安装与配置
|
|
|
|
|
### 一、安装
|
|
|
|
|
|
|
|
|
|
#### 1、使用官方安装脚本自动安装
|
|
|
|
|
#### 1、脚本安装
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
yum install -y yum-utils
|
|
|
|
@ -12,8 +12,6 @@ yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/
|
|
|
|
|
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 2、配置镜像源
|
|
|
|
|
|
|
|
|
|
> 因为 “**未知**” 的原因,造成国内的$Docker$源全部失效,只好使用老毛子的$Docker$源,科学无国界~
|
|
|
|
@ -42,19 +40,13 @@ systemctl restart docker
|
|
|
|
|
systemctl start docker
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 4、检查是否安装成功
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
docker run hello-world
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 5、卸载 docker
|
|
|
|
|
#### 4、卸载 $Docker$
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
yum remove docker-ce
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**删除镜像、容器、配置文件等内容**
|
|
|
|
|
#### 5、删除镜像、容器、配置文件等内容
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
rm -rf /var/lib/docker
|
|
|
|
@ -62,9 +54,7 @@ rm -rf /var/lib/docker
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 二、下载并使用容器
|
|
|
|
|
|
|
|
|
|
下面以$Tomcat$为例,介绍如何下载并使用容器:
|
|
|
|
|
### 二、镜像管理
|
|
|
|
|
|
|
|
|
|
#### 查看可用版本
|
|
|
|
|
|
|
|
|
@ -84,7 +74,7 @@ docker pull tomcat:9.0 # 下载9.0版本的Tomcat
|
|
|
|
|
docker pull tomcat:8.0 # 下载8.0版本的Tomcat
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 查看镜像
|
|
|
|
|
#### 查看本地已下载好的镜像
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker images
|
|
|
|
@ -92,7 +82,7 @@ docker images
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
#### 删除镜像
|
|
|
|
|
#### 删除本地下载好的镜像
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker rmi -f <IMAGE_NAME_OR_ID>
|
|
|
|
@ -100,7 +90,9 @@ docker rmi -f <IMAGE_NAME_OR_ID>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 运行$Tomcat$容器
|
|
|
|
|
### 三、容器管理
|
|
|
|
|
|
|
|
|
|
#### 1、运行容器
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat
|
|
|
|
@ -130,9 +122,11 @@ mv manager/ ../webapps/
|
|
|
|
|
mv ROOT/ ../webapps/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
查看$Tomcat$运行的主界面
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
#### 通过浏览器访问
|
|
|
|
|
#### 2、查看容器
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker ps
|
|
|
|
@ -140,45 +134,7 @@ docker ps
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 三、$JDK1.8$实战
|
|
|
|
|
|
|
|
|
|
下载一个$JDK 1.8$的镜像
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
docker pull openjdk:8
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408061445874.png)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 是否已下载成功
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker images|grep jdk
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 启动容器
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker run -itd --name openjdk1.8 openjdk:8 /bin/bash
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 查看容器
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker ps -a
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 删除容器
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
#### 3、删除容器
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker rm -f openjdk1.8
|
|
|
|
@ -186,7 +142,7 @@ docker rm -f openjdk1.8
|
|
|
|
|
docker rm -f 4bf2bd13f5b0
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 进入容器
|
|
|
|
|
#### 4、进入容器
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker exec -it openjdk1.8 /bin/bash
|
|
|
|
@ -197,13 +153,13 @@ root@4bf2bd13f5b0:/usr/local/openjdk-8/bin# pwd
|
|
|
|
|
/usr/local/openjdk-8/bin
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 将文件复制到容器外
|
|
|
|
|
#### 5、将文件复制到容器外
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker cp openjdk1.8:/usr/local/1.txt ./
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 将文件复制回容器
|
|
|
|
|
#### 6、将文件复制回容器
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker cp ./1.txt openjdk1.8:/usr/local/
|
|
|
|
@ -213,7 +169,7 @@ docker cp ./1.txt openjdk1.8:/usr/local/
|
|
|
|
|
|
|
|
|
|
### 四、使用$Dockerfile$创建镜像
|
|
|
|
|
|
|
|
|
|
> dockerfile 内容如下:
|
|
|
|
|
> $dockerfile$ 内容如下:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# 指定了使用openjdk:8u332-jre-slim-bullseye镜像作为基础镜像,并且给这个镜像起了一个别名runner
|
|
|
|
@ -244,8 +200,8 @@ ENV JAVA_OPTS="-server -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimi
|
|
|
|
|
#配置文件中的spring.profiles.active:在application.properties或bootstrap.properties(以及对应的YAML格式)中设置的spring.profiles.active具有较低的优先级。
|
|
|
|
|
#在您提供的情况中,通过ENV指令设置的环境变量ENV_OPTS包含了-Dspring.profiles.active=test,这意味着在启动Java应用程序时,将通过命令行参数指定test配置文件为激活配置。因此,即使bootstrap.yml文件中设置了profiles: active: dev,应用程序最终将使用test配置文件,因为命令行参数的优先级高于配置文件中的设置。
|
|
|
|
|
#所以,最终JAR包执行时,将使用test配置文件。
|
|
|
|
|
#ENV ENV_OPTS="-Dspring.profiles.active=test"
|
|
|
|
|
ENV ENV_OPTS="-Dspring.profiles.active=pro"
|
|
|
|
|
ENV ENV_OPTS="-Dspring.profiles.active=dev"
|
|
|
|
|
#ENV ENV_OPTS="-Dspring.profiles.active=pro"
|
|
|
|
|
|
|
|
|
|
# sh -c:这告诉Docker容器使用sh(Shell)来执行后面的命令字符串。-c参数表示后面跟着的是要执行的命令。
|
|
|
|
|
#java $JAVA_OPTS $ENV_OPTS ...:这是要执行的Java命令,其中$JAVA_OPTS和$ENV_OPTS是之前通过ENV指令设置的环境变量,它们将在运行时被替换为它们各自的值。
|
|
|
|
@ -255,7 +211,7 @@ ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS $ENV_OPTS -Djava.security.egd=file:/
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 创建容器
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
mkdir /usr/local/publish
|
|
|
|
@ -266,15 +222,13 @@ rz -be
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
将$Java$的微服务项目打包:
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 继续打包
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
cd /usr/local/publish
|
|
|
|
@ -318,7 +272,7 @@ docker run -d -p 7001:7001 gw-charge
|
|
|
|
|
docker ps
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
#### 查看$Docker$日志
|
|
|
|
|
|
|
|
|
@ -326,6 +280,6 @@ docker ps
|
|
|
|
|
docker logs c128a94e5884
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
发现是将发布的版本设置为Pro导致与实际环境不符,修改回$Dev$,重新生成镜像尝试:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|