主页 > 创业  > 

【后端】Docker一本通

【后端】Docker一本通

长期更新补充,建议关注收藏点赞


目录 Docker概述安装部署Docker基本操作使用docker部署tomcat使用docker部署mysql

Docker概述 docker是⼀个应⽤级隔离的虚拟化技术docker三大核心概念 镜像:是具有源的所有特征的⼀个标记⽂件 仓库:存放镜像⽂件的⽬录 容器:docker驱动根据镜像⽂件恢复出来⼀个具体环境docker与虚拟机区别 安装虚拟机软件如:VMware,在此虚拟机软件上安装操作系统(下载),把操作系统的虚拟机文件备份,随时复制并启动该操作系统。在Linux上安装Docker软件,从镜像仓库拉取(Pull)操作系统或应用环境,基于该镜像文件创建一个容器(运行环境),备份容器以供下次使用(直接export容器,将容器提交(Commit)为本地镜像)。虚拟机环境直接完全模拟一套全新的硬件环境,Docker环境不虚拟硬件,直接使用宿主机资源(Docker默认下不限制CPU,内存资源),也可以直接指定分配某个容器的CPU或内存资源。虚拟机可以直接与宿主机或局域网连接,分配IP地址(Brige桥接方式,NAT方式),Docker容器无法获取IP地址(跟随于宿主机的IP地址)。镜像相当于是容器的模板,通过镜像创建容器,容器修改后也可提交为镜像,删除容器并不会删除镜像,删除镜像则无法创建容器。 容器使用注意事项: 尽量让一个容器做一件事情,或启动一个服务。尽量使用挂载的方式将数据文件挂载到容器中,容器里面尽量不要保存数据。尽量让容器按照Docker化的要求来使用容器,而不是安装一个虚拟机。尽量不使用交互模式来直接操作容器,而是在宿主机上执行命令,或者使用Docker File。只要能解决问题,高效地解决问题,无论怎么用,都行。 安装部署Docker 安装docker 安装网络相关命令:yum install net-tools安装实用工具:yum install -y yum-utils device-mapper-persistent-data lvm2添加yum镜像:yum-config-manager --add-repo http://mirrors.aliyun /docker-ce/linux/centos/docker-ce.repo更新yum缓存:yum makecache fast安装docker-ce:yum -y install docker-ce启动docker服务:systemctl start docker, 对应的还有stop, restart等查看docker信息:docker info查找centos可用镜像:docker search centos镜像仓库地址: hub.docker hub.daocloud.io注意事项:建议在CentOS 7版本上安装Docker,确保有足够的硬盘空间,确保内存和CPU资源足够。查看Docker服务,systemctl list-unit-files | grep docker, 如果显示disabled, 说明Docker服务不会随操作系统的启动而自动启动。systemctl enable docker docker随系统自启动 12.Docker命令及参数使用大全: .w3cschool /docker/docker-command-manual.html 基本操作 搜索镜像:docker search hello-world拉取镜像:docker pull hello-world,默认情况下,会拉取最新版本镜像(latest),如果需要拉取指定版本,则必须指定TAG标签。创建运行容器:docker run hello-world == docker create+ docker start查看镜像:docker images创建容器:docker create hello-world:latest docker create --name hello-docker hello-world –name 自定义容器名 -p : 映射端口号,宿主机端口:容器端口 -d :将进程置于后台执行 -it:前台运⾏交互模式 -v :挂载外部⽬录, 语法: -v 主机⽬录:容器⽬录 -e : 设置环境变量, 语法: -e 变量名=值查看容器:docker ps 查看运行的容器, docker container ls -a 查看所有的容器启停容器:docker start/stop/restart hello-world(容器名)查看容器⽇志的命令: docker logs 容器名删除容器:docker rm 容器名 (可通过container ls -a查看)删除镜像:docker rmi hello-world使用交互模式进入容器:docker exec -it tomcat-8.0 bash -i : 使用交互模式 -t:指定一个终端 bash 解释命令所⽤的解释器 推出容器:exit在宿主机上直接操作容器:dcoker exec -t mysql-5.6 ip a 这条命令是在 执行容器内的命令,并且是一次性运行的,不需要额外分步执行。 它会直接在容器内运行 ip a 命令,并输出容器内的网络接口信息。没有必要手动进入容器后再执行 ip a,因为 docker exec 会自动为你在容器中执行该命令。 如果你希望进入容器并交互式执行多个命令,你可以使用 docker exec -it mysql-5.6 bash 进入容器的终端,然后手动执行 ip a 或其他命令。把容器导出到本地保存 docker export -o test.tar 容器名将本地的容器文件上传到docker服务作为镜像,存放在镜像仓库中 docker import test.tar 镜像名:TAG :TAG 是 镜像的标签,用来指定该镜像的版本或标识符。 TAG:是镜像的版本标签,通常用于标识镜像的不同版本。例如,latest、v1.0 或任何你自己设定的标签。如果没有指定 TAG,默认的标签是 latest。在宿主机和容器之间拷⻉⽂件 docker cp 宿主机的路径 容器名:容器中的⽬标路径 如果要从容器⾥⾯拷⻉⽂件出来,交换路径的位置 注意事项:容器的路径需要带上容器名 拷⻉⽬录的时候,不需要加 -r这类的参数直接将容器上传作为本地镜像文件 docker commit 容器名 镜像名:TAG docker commit -p -a "作者名字" -m"描述" 容器编号 镜像名:版本号 例如:docker commit -p -a “lency” -m"my_rabbit" e28f77161d0d my_rabbit:v1 把容器提交为镜像,便于传递 注意:执⾏命令前,停⽌相应的容器导出镜像,将镜像文件保存到本地存储 docker save -o test.tar 镜像名:TAG导入镜像,将本地镜像文件上传到docker服务镜像中,镜像仓库中 docker load --input test.tar 使用docker部署tomcat 先到国内镜像市场去搜索对应的tomcat镜像版本拉取镜像: docker pull 复制拉取的命令查看拉取镜像 docker images 创建并启动容器 docker run --name 容器名 -p 宿主机端口:容器端口 -d 镜像名:标签 如:docker run --name tomcat-8.0 -p 8081:8080 -d 镜像名:tag –name :指定容器名 -p : 映射端口号,宿主机端口:容器端口 -d :将进程置于后台执行 -it:前台运⾏交互模式 -v :挂载外部⽬录, 语法: -v 主机⽬录:容器⽬录 -e : 设置环境变量, 语法: -e 变量名=值查看Tomcat容器是否启动 输入:docker ps -a :如果不加-a,只能看到运⾏成功容器,加了-a可以到所有的容器在浏览器输入宿主机IP+映射端口,访问验证 如果不能访问,则查看防火墙状态,关闭防火墙再次确认 打开浏览器,输入:宿主机IP:宿主机映射端口,按回车确认能否打开tomcat首页 使用docker部署mysql

1.到镜像市场搜索mysql指定版本的镜像(5.6)

2.拉取镜像 使用:docker pull 镜像拉取文件

3.创建并启动容器 docker run --name 容器名 -p 宿主机端口:容器端口 -e MYSQL_ROOT_PASSWORD=密码 -d 镜像名:标签 如:docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:tag 注:如果端口冲突,怎么解决? 查看端口是否冲突:netstat -tunlp[-anp]| grep 端口 解决办法: 1.kill -9 进程ID 杀死进程 2.主动关闭该服务 systemctl stop 服务名 3.在映射端口的时候避免跟该端口重复

标签:

【后端】Docker一本通由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【后端】Docker一本通