通过DockerFile创建镜像,并运行容器

首先我们需要构建一个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

Guess you like

Origin blog.csdn.net/qq_43277718/article/details/121399854