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
相关推荐
古城小栈5 小时前
Docker 多阶段构建:Go_Java 镜像瘦身运动
java·docker·golang
会飞的小蛮猪6 小时前
K8s-1.29.2二进制安装-第一章
云原生·容器·kubernetes
周杰伦_Jay7 小时前
【大模型数据标注】核心技术与优秀开源框架
人工智能·机器学习·eureka·开源·github
凯新生物9 小时前
mPEG-SS-PLGA-DTX:智能药物递送系统
eureka·flink·ffmpeg·etcd
专家大圣10 小时前
摆脱局域网束缚!Neko+cpolar 让跨网共享成日常
服务器·网络·docker·内网穿透·cpolar
Haooog10 小时前
Docker面试题(不定时更新)
java·docker·面试
树下水月11 小时前
docker 启动后 如何通过对应的进程 找docker-compose.yaml 编排文件
运维·docker·容器
凯子坚持 c11 小时前
Docker 网络管理深度解析与实践指南
运维·docker·容器
kevin_水滴石穿11 小时前
在镜像生成时从内网获取字体安装包并配置
linux·docker·容器
人生匆匆11 小时前
部署使用rathole内网穿透
linux·运维·docker