Docker命令

一、找镜像

去docker hub找到各种组件的镜像

bash 复制代码
docker pull nginx # 下载最新版

docker pull nginx:1.20.1

docker pull redis
docker pull redis:6.2.4

# 下载来的镜像都在本地
docker image # 查看所有镜像

docker rmi 镜像名:版本号/镜像id

二、启动容器

bash 复制代码
# -d 后台运行
# --restart=always 开机自启
dorker run --name=mynginx -d --restart--alays -p 88:80 nginx

#查看正在运行的容器
docker ps
# 查看所有
docker ps -a
# 删除停止的容器
docker rm 容器id/名字
docker rm -f myngin #强制删除正运行中的

# 停止容器
docker stop 容器id/名字
#再次启动
docker start 容器id/名字

# 应用开机自启
docker update 容器id/名字 --restart=alays

三、修改容器内容

bash 复制代码
# 进入容器内部的系统,修改容器内容
docker exec it 容器id /bin/bash


# 挂载 -v
# ro 表示容器里面不能改,rw表示容器里面可以更改
dorker run --name=mynginx -d --restart--alays -p 88:80 -v /data/html:/usr/share/nginx/html:ro nginx

四、提交改变

bash 复制代码
docker comit -a "jordan" -m "篮球之神" 容器id guigninx:v1.0

# 将镜像保存成压缩包
docker save -o abc.tar guigninx:v1.0

#别的机器加载这个镜像
docker load -i abc.tar

五、推送远程仓库

bash 复制代码
# 推送镜像到docker hub
docker tag local-image:tagname new-repo:tagname

docker push new-rep:tagname

#把旧镜像名字改成仓库要求的新版名字
docker tag guignginx:v1.0 leifengyang/guinginx:v1.0

docker login #登录dockerhub

docker logout #推送完成后退出
docker push

其他命令

bash 复制代码
docker logs 容器名/id  # 排错

# 挂载容器配置文件到主机  提前准备好一个配置文件
docker run -d -p 80:80 -v /data/html:/usr/share/nginx/html:ro -v /data/conf/nginx.conf:/etc/nginx/nginx.conf --name mynginx nginx

# 提前将容器的配置文件复制到主机
docker cp 容器id:/etc/nginx/nginx.conf /data/conf/nginx.conf

======================================================

一、编写SpringBoot的应用

开启一个redis容器

bash 复制代码
# 在主机中创建一个redis挂载目录 /data/redis
mkdir redis
vim redis.conf # 内部:appendonly yes    requirepass abc123abc

docker run -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d --name myredis -p 6379:6379 redis redis-server /etc/redis/redis.conf 

项目中的配置文件application.properties

bash 复制代码
spring.redis.host=139.198.175.74
spring.redis.password=abc123abc

Controller

java 复制代码
@RestController
public class CounterController{
	
	@Auwowired
	StringRedisTemplate redisTemplate;
	
	@GetMapping("/hello")
	public String count(){
		Long increment = redisTemplate.opsForValue().increment("count-people");
		return "有【"+increment+"】人访问了这个页面";
	}
}

二、将应用打包成镜像

传统的步骤,采用maven的package打成jar包

在服务器上传后,java -jar xxx.jar

Docker打包:

①、项目中创建一个Dockerfile文件

bash 复制代码
FROM openjdk:8-jdk-slim
LABEL maintainer=jordan

COPY target/*.jar /app.jar

ENTRYPOINT["java","-jar","/app.jar"]

②、将jar包和Dockerfile文件上传到linux服务器中

③、通过命令打成镜像

bash 复制代码
docker build -t java-demo:v1.0.

三、启动容器

bash 复制代码
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0

四、进行推送镜像

bash 复制代码
docker login

docker tag java-demo:v1.0 jordan/java-demo:v1.0 # 旧名称改成新名称

docker push jordan/java-demo:v1.0

五、其他服务器可以拉去镜像

bash 复制代码
docker pull jordan/java-demo:v1.0
相关推荐
Zhu75842 分钟前
在docker环境部署frp
运维·docker·容器
承渊政道4 小时前
飞牛NAS部署Immich:搭建家庭相册并实现远程访问
运维·服务器·docker·内网穿透·cpolar·nas·immich
x-cmd4 小时前
用 Rust 打造 AI 时代的 SQL:把重复任务变成可执行文件
数据库·人工智能·sql·ai·容器·rust·workflow
ruofu334 小时前
如何让docker使用提前下载好的镜像,而不是在线拉取
java·spring cloud·docker
童槿顏丶18 小时前
docker自动化部署脚本
docker·eureka·自动化
爱莉希雅&&&21 小时前
K8s NFS+StorageClass+PV/PVC+Deployment 实战笔记
笔记·容器·kubernetes
GlueNa2SiO31 天前
06-Docker存储与数据持久化
笔记·学习·docker
一位正在转型AI全栈的前端工程师1 天前
前端转全栈:从 502 到 200,我的第一个 Docker+Nginx+Node.js 项目
docker·容器
jason_renyu1 天前
Linux Docker 服务管理与排查实战指南(新手速查版)
linux·docker·新手docker学习·docker日志查询·docker服务管理
童槿顏丶1 天前
Jenkins部署(Docker)
java·docker·jenkins