Dockerfile
# 基础镜像 必须为第一个命令
FROM java:8-alpine
# 挂载目录 (只是docker内部的文件目录,不是本地的,如果需要访问外部的,运行命令需要加上 -v pwd:pwd 映射)
VOLUME /home/ftpadmin
# 将本地文件添加到容器并取名, tar类型会自动解压(网络压缩不会被解压),可以访问网络资源,类似wget
ADD ftp-admin-1.0-SNAPSHOT.jar ftpadmin-docker.jar
# 配置容器,使其可执行化 可以使用参数${}
ENTRYPOINT ["sh","-c","java -jar ./ftpadmin-docker.jar ${JAVA_OPTS}"]
2.docker 构建命令
docker build -t ftpadmin:6.0 .
docker build -t 镜像名:Tag Dockerfile目录
3.运行
docker run -e
"JAVA_OPTS= --user.file.path=/home/ftpadmin/users --user.config.dir=/home/ftpadmin/config/"
-d -p 8081:8080 -v /home/ftpadmin:/home/ftpadmin ftpadmin:6.0
-e "在dockerfile中定义的参数"
-p 外部访问端口:本地端口 ------端口映射
-v 主机目录:容器目录(对应dockerfile的VOLUME) --------文件映射(上面dockerfile有提到),可重复使用例如: -v pwd:pwd -v asd:asd
4.停止,删除
docker images ---查看镜像
docker rmi 镜像id或者名称:Tag
docker ps -a ---查看容器运行情况
docker rm 容器id ---删除容器(需要先停止)
docker stop 容器id ---停止容器
docker start 容器id ---启动容器
5.删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
options 说明
option | 作用 |
---|---|
-f | 通过 SIGKILL 信号删除一个正在运行的容器 |
-l | 移除容器间的网络,而非容器本身 |
-v | 删除与容器映射的目录 |
#强制删除容器
docker rm -f 容器id
#删除所有已停止容器
docker rm $(docker ps -a -q)
#删除所有容器
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器