仅做记录使用
1.Dockerfile 文件
FROM openjdk:8-jdk-alpine
VOLUME /home/java/docker20181122
ADD szy0.0.1-SNAPSHOT.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
新建目录。如 /home/java/docker20181122,把打好的jar和Dockerfile文件放到该目录下。
2.构建镜像
切换到 /home/java/docker20181122目录下,执行构建命令
docker build -t='szy:v1.1' .
"." 指当前目录(/home/java/docker20181122)
-t 指定镜像名和tag
执行日志:
[root@localhost docker20181122]# docker build -t='szy:v1.1' .
Sending build context to Docker daemon 48.37 MB
Step 1/4 : FROM openjdk:8-jdk-alpine
---> 97bc1352afde
Step 2/4 : VOLUME /home/java/docker20181122
---> Running in 15a2a553f721
---> b9003f9e6920
Removing intermediate container 15a2a553f721
Step 3/4 : ADD szy0.0.1-SNAPSHOT.jar /app.jar
---> b5d1465136f8
Removing intermediate container 95d97ceaca9d
Step 4/4 : ENTRYPOINT java -jar /app.jar
---> Running in 4bee057326e8
---> a21b67801fe3
Removing intermediate container 4bee057326e8
Successfully built a21b67801fe3
3.查看生成的镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
szy v1.1 a21b67801fe3 8 seconds ago 151 MB
4.运行镜像生成容器
docker run -d --name szy-1.1 -p 8001:9060 a21b67801fe3
-d: 后台运行,
--name 给容器指定名称
-p 端口映射 前面的端口是宿主机的端口,后面的端口是容器的端口
a21b67891fe3 是镜像ID
5.查看当前运行的容器
[root@localhost docker20181122]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
43ad60e85a10 a21b67801fe3 "java -jar /app.jar" 16 minutes ago Up 16 minutes 0.0.0.0:8001->9060/tcp szy-1.1
docker ps -a 查看所有的容器(正在运行的和未运行的)
6.容器的启动和关闭
docker stop 容器ID或名称
docker start 容器ID或名称
7.容器运行日志查看
docker logs -f 容器ID
---------------------------------------------------------------------
nginx: 进入到nginx容器
1.docker exec -it 15746d976d94 /bin/bash 进入到容器
2.docker cp /home/java/nginx1123/nginx.conf 15746d976d94:/etc/nginx/ 复制宿主机中的配置文件到容器中
-v 挂在本地目录到容器中
2.1、建议启动的时候挂载 ::ro 表示分配给只读权限(这样容器就可以使用宿主主机的目录了)
docker run -p 80:80 -v /home/java/nginx1123/nginx.conf:/usr/local/mynginx:ro -d 15746d976d94