✨✨个人主页:沫洺的主页
📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏
📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏
📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏
💖💖如果文章对你有所帮助请留下三连✨✨
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何影响
一个完整的Docker有以下几个部分组成:
DockerClient客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器
安装docker
yum install docker
启动docker
systemctl start docker
关闭docker
systemctl stop docker
重启docker
systemctl restart docker
docker设置随服务启动而自启动
systemctl enable docker
查看docker运行状态
systemctl status docker
查看docker版本号信息
docker version
docker info
帮助查看某些命令
docker --help
查看镜像列表
docker images
docker images -a
搜索镜像
docker serch 镜像名
docker search --filter=STARS=版本 镜像名
拉取镜像
不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
docker pull 镜像名 docker pull 镜像名:tag运行镜像
docker run 镜像名 docker run 镜像名:Tag删除镜像
删除一个
docker rmi -f 镜像名/镜像ID
删除多个 其镜像ID或镜像用用空格隔开即可
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
保存镜像
将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
例如
docker save tomcat -o /myimg.tar
加载镜像
任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像
docker load -i 镜像保存文件位置
重命名镜像
通过tag打标签
docker tag (旧镜像IMAGE ID简写) (新镜像名:版本)
查看正在运行容器列表
docker ps
查看所有容器 -----包含正在运行 和已停止的
docker ps -a
运行一个容器
-it 表示 与容器进行交互式启动
-d 表示可后台运行容器 (守护式运行)
--name 给要运行的容器 起的名字
/bin/bash 交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash
停止容器
docker stop 容器名/容器ID
删除容器
删除一个容器
docker rm -f 容器名/容器ID
删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
删除全部容器
docker rm -f $(docker ps -aq)
容器端口与服务器端口映射
虚拟网卡通过物理机映射端口供外界访问传输协议
-p 宿主机端口:容器端口
进入容器
docker exec -it 容器名/容器ID /bin/bash
退出容器
从容器内 退出到自己服务器中 需注意 两个退出命令的区别
直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭
exit
优雅提出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭
Ctrl + p + q
停止容器
docker stop 容器ID/容器名
重启容器
docker restart 容器ID/容器名
启动容器
docker start 容器ID/容器名
kill 容器
docker中kill和rm的区别:1、docker中kill命令会直接发送SIGKILL信号杀掉容器,而rm命令会删除一个或多个容器;2、rm命令会删除容器运行中产生的数据,而kill命令不会删除容器运行中产生的数据。
docker kill 容器ID/容器名
容器文件拷贝
docker cp 命令用于在容器和本地文件系统之间复制文件/文件夹
从主机上拷贝文件到容器内
docker cp foo.txt mycontainer:/foo.txt
从容器里面拷贝文件/目录到本地一个路径
docker cp Name:/container_path to_path 例如: docker cp tomcat:usr/local/tomcat/README.md ./查看容器日志
docker logs -f --tail=要查看末尾多少行 默认all 容器ID
容器自动重启
使用docker run命令时 添加参数
--restart=always
便表示,该容器随docker服务启动而自动启动
docker run -d -p 8888:6379 --restart=always --name redis002 redis:5.0.5 /bin/bash
更换容器名
docker rename 容器ID/容器名 新容器名
提交镜像后更新镜像
运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更新的镜像,这时候我们就需要使用 commit 命令来构建一个新的镜像
docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag
环境变量
docker run -d -e name1=张三 -e name2=lisi nginx
简单来讲,就是将容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复!
命令:
-v 宿主机文件存储位置:容器内文件位置
如此操作,就将 容器内指定文件挂载到了宿主机对应位置,-v命令可以多次使用,即一个容器可以同时挂载多个文件
-v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置
示例:
运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动
docker run -p 6380:6379 --name redis01 --restart=always -v /home/211/redis/redis.conf:/etc/redis/redis.conf -v /home/211/redis/data:/data -d redis redis-server /etc/redis/redis.conf