栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker系列——docker快速入门之什么是镜像

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker系列——docker快速入门之什么是镜像

什么是docker

相信大家都用过VMware、VisualBox这类虚拟机,每个虚拟机都有自己的操作系统,可以给虚拟机分配固定的cpu和内存。

docker就是linux容器的封装。对容器中的进程来说,进程所有接触到的文件和资源都是虚拟的,这样就能和底层系统隔离,从而拥有更高的安全性。容器的cpu和内存等资源也是分配好的,进程使用的资源不会超过预设的上限,进而防止主机宕机的情况发生。

docker容器是可复制可扩展的,当我们需要运行一个程序时,可以真正做到招之则来挥之则去,不用担心卸载不干净,有残留的情况。

docker的三个基本概念

  • Repository仓库

存放各种镜像的仓库,仓库可分为共有仓库和私有仓库,默认使用的是官方共有仓库(https://hub.docker.com/)。

  • Image镜像

可以将镜像看成一个系统的安装包,里面包含了一个虚拟系统和一些程序。

  • Container容器

镜像的运行时,镜像运行起来后其本身就是一个容器。

以下图展示了Docker客户端、服务端、仓库之间的关系。

安装docker

centos下安装

sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
# 启动docker daemon服务
sudo systemctl start docker
docker容器

启动docker容器

启动容器前,我们需要有一个镜像,镜像本身就是一个简化的linux系统,里面包含了我们要启动的程序。

docker官方的镜像源:https://hub.docker.com/

我们使用官方镜像源来启动一个mysql

docker run --name my-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

此时就启动了一个端口号为3306,root密码为123456的mysql

  • -e 环境变量=值
  • -i 表示容器启动后,可以使用键盘进行操作
  • -t 表示容器启动后,分配一个伪终端,与服务器建立一个会话
  • centos 参数,表示运行的镜像名称
  • /bin/bash 表示运行容器中的bash应用程序
  • -v 宿主机目录:虚拟机目录:[option] 将宿主机上的磁盘挂载到容器,option可为rw读写,ro只读
  • –rm 表示容器退出时自动删除容器,具体参照下面的使用
  • -p 6379:6379 宿主机端口:虚拟机端口 指定容器端口并暴露在外(可指定多个)
  • -d 在后台启动
  • –name 指定容器名称
  • -u 指定启动容器使用的用户
  • -h 指定访问ip端口 或 域名
  • –link 容器名/id:别名,直接ping容器名或别名可与其他容器通讯
  • –privileged=true 容器拥有root权限
  • -m 512m 指定启动分配的内存大小
  • –restart=always 随着docker容器启动而启动
  • –entrypoint bash 以bash的形式启动,覆盖原有的启动方式
  • –ip=192.168.xx.xx 指定ip
  • –network network_name 自定义容器网络

停止docker容器

注意:当启动时加了--restart=always停止容器后会自动重启

docker stop xxx

当使用该命令停止容器时会向容器内的进程发出 kill -15 的指令,当超过10秒后未响应会强制停止

可以使用以下命令指定等待时长

docker stop --time=20 xxx

导出/导入

当我们运行容器时对容器进行操作,容器产生文件后我们想保留当前容器状态可将容器导出为镜像

docker  export container > container.tar

导入镜像

docker import container.tar my_img:latest

查看容器日志

我们在容器中运行程序时可使用logs查看容器日志

docker logs [-f] my-mysql
  • -f 查看实时日志
  • –tail=100 表示查看最新的100行日志

拷贝文件

将宿主机文件拷贝入容器

docker cp testfile container:/home

将容器中文件拷贝到宿主机

docker cp container:/home/testfile ./

其他命令

# 容器无法正常停止时可kill容器
docker kill container
# 启动容器
docker  start container
# 重启容器
docker  restart container
# 删除容器
docker rm  container
# 查看容器运行状态
docker stats [container]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/321246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号