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
相关推荐
是芽芽哩!1 小时前
【Kubernetes】常见面试题汇总(三十)
云原生·容器·kubernetes
是芽芽哩!7 小时前
【Kubernetes】常见面试题汇总(二十三)
云原生·容器·kubernetes
赵渝强老师11 小时前
【赵渝强老师】K8s的DaemonSets控制器
linux·docker·云原生·容器·kubernetes
江西昊仔12 小时前
Docker指令学习1
学习·docker·eureka
福大大架构师每日一题12 小时前
16.3 k8s容器cpu内存告警指标与资源request和limit
容器·贪心算法·kubernetes·prometheus
大田斗小木子15 小时前
Docker学习
学习·docker·容器
莫得等待17 小时前
kubernetes架构
容器·架构·kubernetes
铁板鱿鱼14017 小时前
docker基本(仅供自己参考)
运维·docker·容器
江池俊18 小时前
本地快速部署一个简洁美观的个人Halo博客网站并发布公网远程访问
docker·个人博客
admin_23319 小时前
docker入门总结(附错误处理,持续更新)
运维·docker·容器