👳我亲爱的各位大佬们好😘😘😘
♨️本篇文章记录的为 微服务组件之http客户端Feign 相关内容,适合在学Java的小白,帮助新手快速上手,也适合复习中,面试中的大佬🙉🙉🙉。
♨️如果文章有什么需要改进的地方还请大佬不吝赐教❤️🧡💛
👨🔧 个人主页 : 阿千弟
@[toc]
二、镜像、容器1、常见命令
所有Docker命令手册:
https://docs.docker.com/engine/reference/commandline/docker/
命令 | 作用 |
---|---|
attach | 绑定到运行中容器的 标准输入, 输出,以及错误流(这样似乎也能进入容器内容,但是一定小心,他们操作的就是控制台,控制台的退出命令会生效,比如redis,nginx...) |
build | 从一个 Dockerfile 文件构建镜像 |
commit | 把容器的改变 提交创建一个新的镜像 |
cp | 容器和本地文件系统间 复制 文件/文件夹 |
create | 创建新容器,但并不启动(注意与docker run 的区分)需要手动启动。start\stop |
diff | 检查容器里文件系统结构的更改【A:添加文件或目录 D:文件或者目录删除 C:文件或者目录更改】 |
events | 获取服务器的实时事件 |
exec | 在运行时的容器内运行命令 |
export | 导出容器的文件系统为一个tar文件。commit是直接提交成镜像,export是导出成文件方便传输 |
history | 显示镜像的历史 |
images | 列出所有镜像 |
import | 导入tar的内容创建一个镜像,再导入进来的镜像直接启动不了容器。/docker-entrypoint.sh nginx -g 'daemon o?;' docker ps --no-trunc 看下之前的完整启动命令再用他 |
info | 显示系统信息 |
inspect | 获取docker对象的底层信息 |
kill | 杀死一个或者多个容器 |
load | 从 tar 文件加载镜像 |
login | 登录Docker registry |
logout | 退出Docker registry |
logs | 获取容器日志;容器以前在前台控制台能输出的所有内容,都可以看到 |
pause | 暂停一个或者多个容器 |
port | 列出容器的端口映射 |
ps | 列出所有容器 |
pull | 从registry下载一个image 或者repository |
push | 给registry推送一个image或者repository |
rename | 重命名一个容器 |
restart | 重启一个或者多个容器 |
rm | 移除一个或者多个容器 |
rmi | 移除一个或者多个镜像 |
run | 创建并启动容器 |
save | 把一个或者多个镜像保存为tar文件 |
search | 去docker hub寻找镜像 |
start | 启动一个或者多个容器 |
stats | 显示容器资源的实时使用状态 |
stop | 停止一个或者多个容器 |
tag | 给源镜像创建一个新的标签,变成新的镜像 |
top | 显示正在运行容器的进程 |
unpause | pause的反操作 |
update | 更新一个或者多个docker容器配置 |
version | Show the Docker version information |
container | 管理容器 |
image | 管理镜像 |
network | 管理网络 |
volume | 管理卷 |
根据正在运行的容器制作出相关的镜像:反向
根据镜像启动一个容器:正向
有了Docker:
1、先去软件市场搜镜像:https://registry.hub.docker.com/ docker hub
2、下载镜像 docker pull xxx
3、启动软件 docker run 镜像名;
对于镜像的所有管理操作都在这一个命令:docker image --help
1、docker ps
# 查看容器
docker ps
# 查看停止的容器
docker ps -f status=exited
# 查看所有容器(包括运行和停止)。
docker ps -a
# 查看最后一次运行的容器。
docker ps -l
# 列出最近创建的 n 个容器。
docker ps -n 5
2、docker images
# 列出所有镜像
docker images
3、docker pull
# 以redis为例
docker pull redis
# 不写标签相当于
docker pull redis:latest(最新版)
4、docker create
# 创建容器
docker create --name myredis -p 6379:6379 redis
docker create --name myredis -p 6379(主机的端口):6379(容器的端口) redis
https://docs.docker.com/engine/reference/commandline/create/
5、docker start
# 用create创建的容器要用start启动
docker start 容器名或者容器id
docker start myredis
6、docker stop
# 停止容器
docker stop 容器名或者容器id
docker stop myredis
7、docker restart
# 重启容器
docker restart 容器名或者容器id
docker restart myredis
8、docker rm
# 删除容器
docker rm 容器名或者容器id
# 强制删除
docker rm -f 容器名或者容器id
# 删除全部容器
docker rm -f $(docker ps -aq)
9、docker rmi
# 删除镜像
docker rmi 镜像名或者镜像id
# 强制删除
docker rmi -f 镜像名或者镜像id
# 删除全部镜像
docker rmi -f $(docker images -aq)
10、docker kill
# 强制停止容器
docker kill 容器名或者容器id
11、docker port
# 查看容器端口映射
docker port 容器名或者容器id
docker port myredis
12、docker logs
# 查看容器运行日志
docker logs 容器名或者容器id
docker logs myredis
# 实时查看
docker logs -f myredis
# 查看最后100 行日志
docker logs -f --tail 100
docker logs -f --tail 100 myredis
# 查看最近30分钟的日志
docker logs --since 30m myredis
# 查看时间段日志
docker logs -t --since="2021-11-01" --until "2021-11-05" myredis
13、docker rename
# 重命名容器
docker rename 容器名 新容器名
docker rename myredis redis
14、docker stats
# 查看容器资源的实时使用状态
docker stats 容器名或者容器id
15、docker update
# 更新容器配置
# 更新容器为开机自启
docker update 容器名或者容器id --restart=always
16、docker tag
# 给镜像重新打标签
docker tag 原镜像:标签 新镜像名:标签
17、docker prune
# 移除游离镜像 dangling:游离镜像(没有镜像名字的)
docker image prune
# 清理docker system
docker system prune
18、docker pause
# 暂停容器
docker pause 容器名或者容器id
19、docker unpause
# 启动已暂停的容器
docker unpause 容器名或者容器id
20、docker inspect
# 查看镜像详细信息
docker inspect 镜像id或者镜像名
# 查看容器详细信息
docker container inspect 容器名或者容器id
# network volume等等都可以查看
docker inspect image/network/volume ....
21、docker exec
# 进入容器
docker exec -it 容器名或者容器id /bin/bash
# 0用户,以特权方式进入容器
docker exec -it -u 0:0 --privileged myredis /bin/bash
https://docs.docker.com/engine/reference/commandline/exec/
22、docker attach
# 进容器 绑定的是控制台. 可能导致容器停止。不要用这个
docker attach
23、docker export、import
# 导出镜像
docker export 导出的文件被import导入以后变成镜像,并不能直接启动容器,需要知道之前的启动命令
docker export -o nginx.tar 容器id
docker import nginx.tar mynginx:v6
(docker ps --no-trunc),然后再用下面启动。
docker run -d -P mynginx:v6 /docker-entrypoint.sh nginx -g 'daemon off;'
或者docker image inspect 看之前的镜像,把 之前镜像的 Entrypoint的所有和 Cmd的连接起来就
能得到启动命令
24、docker save、load
docker save -o busybox.tar busybox:latest 把busybox镜像保存成tar文件
docker load -i busybox.tar 把压缩包里面的内容直接导成镜像
25、docker commit
# 一般运行中的容器会常年修改,我们要使用最终的新镜像,把新的镜像放到远程docker hub,方便后来在其他机器下载
docker commit -a xueqimiao -m "first commit" mynginx4 mynginx:v4
# 会产生游离镜像
2、典型命令
1、docker run
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -P: 随机端口映射,容器内部端口随机映射到主机的端口
- -p:指定端口映射,格式为:主机(宿主)端口:容器端口
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
- --name="nginx-lb":为容器指定一个名称;
- --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
- -h "mars": 指定容器的hostname;
- -e username="ritchie": 设置环境变量;
- --env-file=[]: 从指定文件读入环境变量;
- --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
- -m :设置容器使用内存最大值;
- --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
- --link=[]: 添加链接到另一个容器;
- --expose=[]: 开放一个端口或一组端口;
- --restart , 指定重启策略,可以写--restart=awlays 总是故障重启
- --volume , -v: 绑定一个卷。一般格式 主机文件或文件夹:虚拟机文件或文件夹
1、重启策略
- no,默认策略,在容器退出时不重启容器
- on-failure,在容器非正常退出时(退出状态非0),才会重启容器
- on-failure:3,在容器非正常退出时重启容器,最多重启3次
- always,在容器退出时总是重启容器
- unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
2、docker exec
# 进入容器
docker exec -it 容器名或者容器id /bin/bash
# 0用户,以特权方式进入容器
docker exec -it -u 0:0 --privileged myredis /bin/bash
3、docker build
docker build -t imageName -f DockerfileName .
# 不带缓存构建
docker build --no-cache
3、容器的状态
Created(新建)、Up(运行中)、Pause(暂停)、Exited(退出)
如果这篇【文章】有帮助到你💖,希望可以给我点个赞👍,创作不易,如果有对Java后端或者对
spring
感兴趣的朋友,请多多关注💖💖💖
👨🔧 个人主页 : 阿千弟