首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

docker部署搭建使用

  • 24-03-17 08:29
  • 3095
  • 5519
blog.csdn.net

简介

什么是Docker?

Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。使用Linux容器来部署应用程序称为集装箱化。使用docker轻松部署应用程序

Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。

总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样

部署安装

Centos7上安装docker

依赖安装:

yum install -y yum-utils device-mapper-persistent-data lvm2
  • 1

-阿里源安装:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 1

docker安装:

 yum install docker-ce   # 安装指定版本,例如yum install -y docker-ce-18.09
  • 1

启动并加入开机自启

systemctl start docker
systemctl enable docker
  • 1
  • 2

修改docker数据存放目录位置(默认目录是/var/lib/docker,这里防止/目录满我修改到数据盘内)和镜像加速

vim /etc/docker/daemon.json

{
  "graph": "/data/docker",
  "registry-mirrors": ["https://01xxgaft.mirror.aliyuncs.com"]
}
  • 1
  • 2
  • 3
  • 4

重启docker载入新配置:

systemctl restart docker
  • 1

基本使用

这里可以docker --help查看所有用法,下面是比较常用的

镜像获取查看

镜像搜索:

  • docker search 想搜索的镜像包名 (例如:docker search nginx)
  • 镜像下载:docker pull 想下载的镜像包名 (例如:docker pull nginx)
  • 查看本地所有的镜像:docker image ls

容器启动和管理

  • 容器启动:docker run -d 镜像名 (直接后台启动容器 例如:docker run -d nginx)
  • 容器交互模式启动:docker run -d -ti 镜像名 /bin/bash (使用交互模式启动容器 例如:docker run -d -ti centos /bin/bash)
  • 容器启动打上标记名:docker run -d --name=标记名 镜像名 (给容器打上标记名 例如:docker run -d --name=test_nginx nginx)
  • 容器启动映射端口:docker run -d -p 需要映射的宿主机端口:容器端口 镜像名 (将容器端口映射到宿主机 例如:docker run -d -p 8080:80 nginx 这里就将容器的80端口映射到了宿主机的8080端口)
  • 进入容器内部:docker exec -ti 镜像名 /bin/bash (进入容器内部 例如:docker exec -ti centos /bin/bash 推出时按住ctrl不放,另一个只手按p,然后再按q,这样就是安全退出,容器也不会死掉,如果是用交互模式运行的,直接exit退出就行)

镜像和容器的查看停止与删除

  • 查看正在运行的容器,这里会显示各种信息:docker ps 在这里插入图片描述

  • 显示所有的容器,包括已经停止运行的:docker ps -a

  • 停止容器:docker stop 容器id或者标记的name (这里id可以docker ps 看到,标记的name是启动时你设置的,例如停止上图的nginx:docker stop 7baea3ea0701 或 docker stop nginx_test1)

  • 删除容器:docker rm 容器id或者标记的name (主要用于删除已经停止运行的容器,但是容器必须是停止状态才能删除,例如:docker rm 7baea3ea0701 或 docker rm nginx_test1)

  • 删除镜像:docker rmi 镜像名 (主要用于删除镜像 例如:docker rmi nginx)

镜像的各种打包

  • 将当前运行的容器状态打包成镜像:docker commit -m '提交内容' -a '提交人' 已启动并修改过的容器名 新的镜像名以及版本号 已启动并修改过的容器名 新的镜像名以及版本号 (主要用于将运行中的容器进入内部修改后将其打包成新的镜像)
    • 这里我拿上图的nginx来打包 例如:docker commit -m 'test' -a 'test' nginx_test1 nginx:testv1.0.0
  • 使用dockerfile打包:docker build -t 新的镜像名以及版本号 目录位置 (这里是使用dockerfile进行打包,需要新建一个目录并在里面创建一个Dockerfile文件)
    • 例如,我新建一个nginxfile目录 mkdir nginxfile &&; cd nginxfile && touch Dockerfile

    • 编辑Dockerfile内容,格式为在这里插入图片描述

    • FROM 镜像名 RUN 打包过程中执行的命令,可以有多个,当有多个时用一条RUN,然后用 && 和 \ 来连接,否则或创建多层镜像 CMD 运行容器时执行的命令,只能有一个生效

    • 注意:CMD内的内容必须是前台运行的程序,否则后台后容器会挂掉,因为容器启动时会记住CMD后面这个命令执行的pid,并将其标识为1,如果该进程没有存活,容器会认为任务已经运行结束,会自动挂掉,上面我将nginx前台启动

镜像的导入导出

  • 镜像文件导出:docker save -o 保存的文件位置 镜像名 (例如:docker save -o /tmp/nginx.tar.gz nginx)
  • 镜像文件导入:docker load < 镜像包位置 (例如 docker load < /tmp/nginx.tar.gz nginx)

容器和宿主机的数据交互

  • 拷贝文件:docker cp 文件位置 容器id或标记的name:容器内位置 (将宿主机内文件拷贝到容器内,也可以反着来将容器内文件拷贝出来,例如:docker cp /tmp/1.txt nginx_name:/tmp/ 反向拷贝:docker cp nginx_name:/tmp/ /tmp/1.txt )
  • 挂载本地目录:docker run d -v 宿主机目录:容器内目录 镜像名(将本地目录映射挂载到容器内目录,例如:docker run d -v /tmp/logs:/data/logs nginx)

如果觉得该文章对你有帮助的话请给我点个?吧,感谢

注:本文转载自blog.csdn.net的Anime777的文章"https://blog.csdn.net/qq_40954652/article/details/123183094"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top