首先我们需要构建一个DockerFile
vim DockerFile
注意:文件的名字必须为DockerFile
Docker中的内容为
# 拉取基础镜像
FROM amazonaws.com.cn/infra:jdk11
# 维者信息
MAINTAINER banzhuanren
ENV HOME /home/resource-mgr
ENV AWS AKIAT2NCI52BZ
ENV AWS uGFJLjgpD+MPFrTM+z13e
##设置控制台字符集编码
ENV LANG C.UTF-8
##设置docker容器的时间
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir $HOME
ADD test-mgr.jar $HOME/test.jar
ADD private.der $HOME/private.der
# 告诉Docker服务端暴露的端口,在容器启动时需要通过 -p 做端口映射
EXPOSE 8085
WORKDIR $HOME
# 容器启动后执行的命令
ENTRYPOINT ["java","-jar","-Xms1024m","-Xmx4096m","-Xmn2g","test.jar","--es.password=d52LR75Lh57o8I"]
构建镜像
docker build -t test:0.1 .
- -t:表示tag,相当于打标签
- 0.1: 表示版本号
- .:表示当前目录,也就是DockerFile所在的目录
查看镜像
docker image s # 列出所有镜像
docker images -a # -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
运行容器
docker run --restart always -d -p 8080:8080 --name test test:latest
- -d:表示后台运行容器
- p:表示端口映射
- test:镜像名字
- latest:版本号,表示最新的镜像
查看运行的容器
docker ps #查看运行中的容器
docker ps -a #查看所有容器
停止运行中的容器
docker stop 容器id
启动容器
docker start 容器id
进入容器
docker exec -i -t 69d1 /bin/bash
- -i :只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。
- -t : 当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。
删除容器
docker rm 容器id
其它docker命令
docker search -s 30 redis # 查找收藏数大于30的 redis
docker images -q: # 显示镜像id
docker images --digests # 显示镜像的摘要信息
docker pull redis # 下载镜像
docker rmi -f 镜像名A:tag 镜像名B:tag #删除多个镜像
注意区分:删除镜像是docker rmi 镜像id, 删除容器是 docker rm 容器id