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
相关推荐
AOwhisky8 小时前
下一代容器来了?Docker 宣布原生支持 WebAssembly
java·运维·docker·容器·rust·wasm
念何架构之路14 小时前
Docker 容器状态机 学习
java·学习·docker
jieyucx14 小时前
Docker 入门第六阶段:综合实战项目
运维·docker·容器
不能只会打代码15 小时前
Day 002 — Python 工程化 & FastAPI & 数据库速通
数据库·redis·python·docker·fastapi·测试
海涛从不浪16 小时前
03 oect刷入Armbian后安装Onepanel并进行docker迁移
运维·docker·容器·onepanel
yanjieliyun18 小时前
家庭服务器从入门到精通 · 第 5 篇 · NPM反向代理从安装到起飞:一条命令搞定HTTPS
docker
天狼啸月199019 小时前
RagSEDE复现: Docker and Ragflow 关系
docker·容器·ragflow·ragsede
java_logo20 小时前
Docker 部署 SamWaf 完整教程:开源 Web 应用防火墙实测
docker·开源·防火墙·waf·samwaf·轩辕镜像·docker部署waf
C137的本贾尼20 小时前
第十篇:Docker & K8s——标准化应用的“集装箱“和“码头调度中心“
docker·容器·kubernetes