1.linux安装docker菜鸟教程

curl -sSL https://get.daocloud.io/docker | sh

2.启动docker

如果不启动docker就去操作docker指令,会报错:Is the docker daemon running?

service docker start

3.配置Dockerfile,在对于的jar文件夹下创建Dockerfile(touch Dockerfile),并编写如下配置信息:

# 该镜像需要依赖的基础镜像
FROM java:8
# 指定维护者的名字
MAINTAINER Lixz
# 将当前目录下的jar包复制到docker容器的/目录下
COPY streamlet-video-dev-api.jar streamlet-video-dev-api.jar
# 运行cmd命令,会在启动容器时运行。
CMD java -jar streamlet-video-dev-api.jar
# 对外端口号 jar包运行的端口号
EXPOSE 8082

 4.创建镜像

 docker build -t streamlet-video .

结果如下表示创建成功

[root@iZ2ze8nyz28va3in2yksh9Z streamlet]# docker build -t streamlet-video .
Sending build context to Docker daemon  105.9MB
Step 1/5 : FROM java:8
 ---> d23bdf5b1b1b
Step 2/5 : MAINTAINER Lixz
 ---> Running in d0ba2f9a698a
Removing intermediate container d0ba2f9a698a
 ---> 0425ad0151d8
Step 3/5 : COPY streamlet-video-dev-api.jar streamlet-video-dev-api.jar
 ---> e7960fcf819c
Step 4/5 : CMD java -jar streamlet-video-dev-api.jar
 ---> Running in 4c8879da8ba7
Removing intermediate container 4c8879da8ba7
 ---> 12433786a203
Step 5/5 : EXPOSE 8082
 ---> Running in da294e3118e3
Removing intermediate container da294e3118e3
 ---> 44a100a738b1
Successfully built 44a100a738b1
Successfully tagged streamlet-video:latest
[root@iZ2ze8nyz28va3in2yksh9Z streamlet]# 

 5.查看镜像 

docker images

 查看结果如下

[root@iZ2ze8nyz28va3in2yksh9Z streamlet]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED              SIZE
streamlet-video   latest    44a100a738b1   About a minute ago   749MB
java              8         d23bdf5b1b1b   4 years ago          643MB
[root@iZ2ze8nyz28va3in2yksh9Z streamlet]# 

 6.添加并运行容器

docker run -d -p 8082:8082 --name streamletVideo streamlet-video

 -d:表示后台运行(不设置的话Java日志入直接在这里显示)

-p:端口号

--name streamletVideo:给容器设置名称(NAMES),不设置--name会自动生成一个,这样的话关闭容器就要先查询一遍,不方便

结果如下

[root@iZ2ze8nyz28va3in2yksh9Z streamlet]# docker run -d -p 8082:8082 --name streamletVideo streamlet-video
d9e0bc439acaaf90946abf192fae16085754754405b901817bdec388c63e59dc
[root@iZ2ze8nyz28va3in2yksh9Z streamlet]# 

7.查看容器

 

docker ps -a

 结果如下

[root@iZ2ze8nyz28va3in2yksh9Z streamlet]# docker ps -a
CONTAINER ID   IMAGE             COMMAND                  CREATED         STATUS         PORTS                    NAMES
d9e0bc439aca   streamlet-video   "/bin/sh -c 'java -j…"   3 minutes ago   Up 3 minutes   0.0.0.0:8082->8082/tcp   streamletVideo
[root@iZ2ze8nyz28va3in2yksh9Z streamlet]# 

 刚才已经运行了容器,jar已经运行起来了,查看是否真正能访问

 可以看到jar对应的服务已经起来了。如果需要关闭服务

 8.关闭服务

docker stop streamletVideo

 9.启动服务

docker start streamletVideo

10.删除容器

docker rm streamletVideo

11.删除镜像

docker rmi streamlet-video

我们重新上传新的jar包重新部署的时候,不能直接关闭/启动服务,这样还是原来的镜像跟容器。重新部署的步骤:关闭服务 -> 删除容器 ->删除镜像 -> 创建镜像 -> 添加并运行容器

12.新建编辑脚(streamlet-video.sh)运行脚本一键执行上述重新部署流程

app_name='streamlet-video'
app_container_name='streamletVideo'
docker stop ${app_container_name}
echo '----stop container----'
docker rm ${app_container_name}
echo '----rm container----'
#docker rmi `docker images | grep none | awk '{print $3}'`
docker rmi ${app_name}
echo '----rm none images----'
docker build -t ${app_name} .
echo '----docker build images----'
docker run -d  -p 8082:8082 --name ${app_container_name} ${app_name}
echo '----start container----'

执行脚本 ./streamlet-video.sh

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐