虚拟机与容器化介绍
- 虚拟机:
- 容器化:
启动Docker容器
- 启动容器
- 以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:
$ docker run -it ubuntu /bin/bash
参数说明:
-i
: 交互式操作。
-t
: 终端。
ubuntu
: ubuntu 镜像。
/bin/bash
:放在镜像名后的是命令,这里我们希望有个交互式 Shell
,因此用的是 /bin/bash
。
Docker命令
- ENTRYPOINT 命令格式:
ENTRYPOINT ["<executeable>","<param1>","<param2>",...]
可以搭配 CMD
命令使用:一般是变参才会使用 CMD
,这里的 CMD
等于是在给 ENTRYPOINT
传参
- 示例:
ENTRYPOINT ["sh", "-c", "java -jar $JVM_OPS $APOLLO_TEST /test.jar $EUREKA_PARAM_TEST"]
- 等价于:
ENTRYPOINT ["sh", "-c"] # 定参
CMD ["java -jar $JVM_OPS $APOLLO_TEST /test.jar $EUREKA_PARAM_TEST"] # 变参
ENV
命令
ENV
用于设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。
- 格式:
ENV <key> <value>
ENV <key1>=<value1> <key2>=<value2>...
以下示例设置 NODE_VERSION = 7.2.0
, 在后续的指令中可以通过 $NODE_VERSION
引用:
ENV NODE_VERSION 7.2.0
RUN curl -SLO "https://test/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
&& curl -SLO "https://test/dist/v$NODE_VERSION/SHASUMS256.txt.asc"
Docker容器操作命令
- 停止docker中的服务(停止服务前 要先删容器 再删镜像)
- 显示所有容器 一个容器只管理一个服务 即使容器挂掉也不会影响其他容器的服务 做到业务之间不影响
docker ps
- 停止
CONTAINER ID
为e8的服务
查询结果:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e8cfcxxxx80 etl-test:1.0 "java -Djava.test…" About an hour ago
docker stop e8
- 显示所有容器 (包括已停止 和 正在运行的 所有容器),可以看到刚刚停掉的容器e8依然在
docker ps -a
- 删掉容器 e8
docker rm e8
- 显示所有容器 刚刚被删掉的e8容器已经不在
docker ps -a
- 显示所有镜像
docker images
- 删除 镜像名(IMAGE ID)为ea的镜像
docker rmi ea