1.docker常用命令
1.1 找镜像
下载最新版:
docker pull nginx
下载指定镜像名:版本名(标签)
docker pull nginx:1.20.1
例如: docker pull redis 和 docker pull redis:6.2.4
查看所有镜像
docker images
删除镜像
docker rmi 镜像名:版本号/镜像id
1.2 启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
【docker run 设置项 镜像名 】 镜像启动运行的命令(镜像里面默认有的,一般不会写)
-d:
后台运行
--restart=always:
开机自启
例如:docker run --name=mynginx -d --restart=always -p 88:80 nginx
查看正在运行的容器docker ps
查看所有docker ps -a
删除停止的容器docker rm 容器id/名字
强制删除正在运行中的docker rm -f mynginx
停止容器
docker stop 容器id/名字
再次启动docker start 容器id/名字
应用开机自启 docker update 容器id/名字 --restart=always
1.3 修改容器内容
1.进容器内部修改
docker exec -it 容器id /bin/bash
2.挂载数据到外部修改
-v 宿主机目录:ring器目录
-p 宿主机端口:容器端口
docker run --name=mynginx
-d --restart=always
-p 88:80
-v /data/html:/usr/share/nginx/html:ro \
nginx
1.4 提交改变
改变后的容器打成镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit -a “lc” -m “首页变化” 341d81f7504f guignginx:v1.0
把docker中的一个容器重新打包成镜像–比如对容器的某些文件修改了(个性化处理)然后打包成镜像,可供别人方便拉取容器
1.5 镜像传输
1.手动传输
将镜像保存成压缩包 docker save -o [tar报名字] [容器名字]:[版本号]
docker save -o lc.tar mysql:5.7
执行ls就可以看到当前目录下有个lc.tar的文件
使用传输方式把tar包传输到别的服务器
别的机器加载这个镜像:docker load -i [tar包名字]
docker load -i abc.tar
这样docker就把abc.tar加载成自己的镜像了
2.远程仓库传输
推送镜像到docker hub;应用市场
重命名:docker tag local-image:tagname new-repo:tagname
推送:docker push new-repo:tagname
把旧镜像的名字,改成仓库要求的新版名字 docker tag guignginx:v1.0 lc/guignginx:v1.0
登录到docker hub docker login
docker logout
(推送完成镜像后退出)推送
docker push lc/guignginx:v1.0
别的机器下载
docker pull lc/guignginx:v1.0
2.spring应用打成镜像
2.1 编写 Dockerfile
示例:
FROM openjdk:8-jdk-slim
LABEL maintainer=liaochao
COPY target/*.jar /app.jar
ENTRYPOINT ["java","-jar","app.jar"]
2.2 上传
把target目录及以下文件和Dockerfile一起传到服务器(①服务器有docker ②tagert下默认已经打成了jar包)
2.3 生成镜像
docker build -t app:v1.0 .
注意:最后有一个小点(表示当前目录为基准目录)
通过docker images 可以看到刚打的应用程序的镜像
2.4 启动
打完镜像后可以 通过 docker images 看到该镜像 执行
docker run -d -p 10086:10086 app:v1.0
将容器运行