Docker简单上手
创始人
2025-05-31 15:10:02
0

Docker 笔记

文章目录

  • Docker 笔记
    • @[toc]
    • 一、Docker简介
      • docker版本
      • docker 架构
    • 二、Docker常用命令
      • docker镜像命令
      • docker容器命令
      • 提交docker镜像到阿里云仓库
      • 搭建私有docker镜像库
    • 三、容器数据卷
    • 四、阿里云容器部署
      • 1.Tomcat部署
      • 2.MySQL部署
      • 3.Redis部署

一、Docker简介

​ Docker是一个开源的容器引擎 ,它可以帮助我们更快地交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用Docker,可更快地打包、测试以及部署应用程序,并可减少从编写到部署运行代码的周期

docker版本

docker有两个版本

  • 社区版 Community Edition (CE)
  • 企业版 Enterprise Edition (EE)

社区版 (CE) 对于希望开始使用Docker并尝试基于容器的应用程序的个人开发人员和小型团队非常理想.

docker 架构

在这里插入图片描述

二、Docker常用命令

docker镜像命令

#查看docker镜像
docker images#搜索docker镜像
docker search 镜像名
docker search --filter=STARS=9000 mysql 搜索 STARS >9000的 mysql 镜像#拉取镜像
docker pull 镜像名 
docker pull 镜像名:tag#启动docker镜像
docker run tomcat#删除一个
docker rmi -f 镜像名/镜像ID#删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)#强制删除镜像
docker image rm 镜像名称/镜像ID#dokcer保存镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
docker save tomcat -o /myimg.tar#加载镜像,任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像
docker load -i 镜像保存文件位置#镜像标签
docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG

docker容器命令

#查看正在运行容器列表
docker ps#查看所有容器 -----包含正在运行 和已停止的
docker ps -a#修改容器名称
docker rename 原容器名 要修改的容器名#运行一个容器
# -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)#容器端口与服务器端口映射
docker run -itd --name redis002 -p 8888:6379 redis:5.0.5 /bin/bash#进入容器内部 方式1
docker exec -it 容器名/容器ID /bin/bash
#进入容器内部 方式2 推荐
docker attach 容器名/容器ID#退出容器
#直接退出  未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭  
exit
# 优雅退出 无论是否添加-d 参数 执行此命令容器都不会被关闭
Ctrl + p + q#停止容器
docker stop 容器ID/容器名
#重启容器
docker start 容器ID/容器名
#kill 容器
docker kill 容器ID/容器名#容器文件拷贝 —无论容器是否开启 都可以进行拷贝
#docker cp 容器ID/名称:文件路径  要拷贝到外部的路径   |     要拷贝到外部的路径  容器ID/名称:文件路径
#从容器内 拷出
docker cp 容器ID/名称: 容器内路径  容器外路径
#从外部 拷贝文件到容器内
docker cp 容器外路径 容器ID/名称: 容器内路径#查看容器日志
docker logs -f --tail=要查看末尾多少行 默认all 容器ID

提交docker镜像到阿里云仓库

#提交镜像信息 本地
docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag#登录阿里云仓库
docker login --username=经验丰富老船长 registry.cn-hangzhou.aliyuncs.com#从阿里云仓库拉取对应的镜像
docker pull registry.cn-hangzhou.aliyuncs.com/lvhaoit/my_ubuntu_1.3:[镜像版本号]#提交信息
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/lvhaoit/my_ubuntu_1.3:[镜像版本号]

搭建私有docker镜像库

#拉取registry镜像
docker pull registry#启动私服镜像
docker run -d -p 5001:5000 -v /Users/lvhao/server/docker_myRegistry/:/tmp/registry --privileged=true registry#查询下私服库上是否有镜像
curl -XGET http://127.0.0.1:5001/v2/_catalog#修改tag参数 (这种格式才能放入私服)
docker tag 镜像:Tag Host:Prot/Repository:Tag
docker tag lvhaoit_ubuntu:1.2_ifconfig 127.0.0.1:5001/lvhaoit_ubuntu:1.2_ifconfig#增加系统参数 取消docker默认不允许http方式推送
"insecure-registries": ["127.0.0.1:5001"],#push容器到私服仓库
docker push 127.0.0.1:5001/lvhaoit_ubuntu:1.2_ifconfig#从私服库拉取
docker pull 127.0.0.1:5001/lvhaoit_ubuntu:1.2_ifconfig

三、容器数据卷

#将两个文件夹内部同步起来,可以完成你写我读 我写你读的操作
#挂载宿主机目录与容器内目录
docker run -it --privileged=true -v [宿主机地址]:[挂载容器内地址] [镜像名/镜像号]
docker run -it --privileged=true -v /Users/lvhao/server/docker_file/ubuntu/:/test/ 499266e3e861 #查看挂载关系 "Mounts"中就是挂载关系
docker inspect [容器名/id]#容器利用start重启后 还是可以同步#容器只读 即宿主机写可以同步给容器,但容器只读
挂载时: /容器目录:ro 镜像名  ro = read only#容器继承挂载规则 会将文件夹内的同步数据
docker run -it --privileged=true --volumes-from u1 --name u2 my_ubuntu_1.3

四、阿里云容器部署

1.Tomcat部署

# run容器同时挂载项目
docker run -d -p 8080:8080 --name tomcat_8080 --privileged=true -v /docker/tomcat/8080/webapps/:/usr/local/tomcat/webapps fb5657adc892 # 进入容器内部
docker exec -it bbc6f1a5825c /bin/bash#上传阿里云
docker tag 7ae57ee4a72a registry.cn-hangzhou.aliyuncs.com/ali_server/tomcat:1.0# 拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/ali_server/tomcat:1.0

2.MySQL部署

#启动mysql容器
docker run -d -p 3307:3306 --name mysql_3307 --privileged=true -v /docker/mysql/3307/log:/var/log/mysql -v /docker/mysql/3307/data:/var/lib/mysql -v /docker/mysql/3307/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=lh051920 c20987f18b13#启动容器失败 查看日志
docker logs 容器id#进入mysql容器
docker exec -it mysql_3307 /bin/bash#登录mysqlmysql -uroot -p#mysql 8 设置允许远程用户访问
update user set host = '%' where user = 'root' and host='localhost'; # 更新root - localhost 为 root - %#查询数据库字符集show variables like "character%";

3.Redis部署

# 增加需要绑定的conf文件
# 这个参数自己实际部署是yes,但是docker可以-d运行 这里有这个会启动失败
daemonize no#	启动redis容器
docker run -d -p 6379:6379 --name redis_6379 --privileged=true -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/conf/data:/data 7614ae9453d1 redis-server /etc/redis/redis.conf

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...