其他

学习笔记 docker 及docker-compose

查看内核 uname -r

设置一个yum源,下面两个都可用

# 设置稳定版仓库
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

ce社区版,ee企业版,推荐安装企业版

# 安装 Docker Engine
sudo yum install docker-ce docker-ce-cli containerd.io

启动

systemctl start docker

开机启动

systemctl enable docker

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

下载镜像 docker pull

创建一个新的容器并运行一个命令: docker run -itd –rm -p 80:80 -v /data:/data centos /bin/bash

  1. –name 容器名称
  2. -d 后台方式运行
  3. -it 使用交互方式运行,进入容器查看内容(例如:docker run -it centos /bin/bash)
  4. -p 指定容器的端口号 -p 8080:8080(主机端口:容器端口)

Docker start [参数] 启动容器

进入当前正在运行的容器

docker exec -it 容器id /bin/bash 进入容器后开启一个新的终端(常用)

查看容器日志信息

docker logs -tf –tail 10 容器id

  • -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因 此我们需要交互式终端。
  • –rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 –rm 可以避免浪费空间。
  • centos :这是指用centos  镜像为基础来启动容器。
  • bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash。
  • -v 主机的目录/data映射到容器的/data
  • -p [宿主主机端口]:[容器内部端口]

-d, –detach=false 指定容器运行于前台还是后台,默认为false

-i, –interactive=false 打开STDIN,用于控制台交互

-t, –tty=false 分配tty设备,该可以支持终端登录,默认为false

-u, –user=”” 指定容器的用户

-a, –attach=[] 登录容器(必须是以docker run -d启动的容器)

-w, –workdir=”” 指定容器的工作目录

-e, –env=[] 指定环境变量,容器中可以使用该环境变量

-m, –memory=”” 指定容器的内存上限

-P, –publish-all=false 指定容器暴露的端口

-p, –publish=[] 指定容器暴露的端口

-v, –volume=[] 给容器挂载存储卷,挂载到容器的某个目录

–volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录

–env-file=[] 指定环境变量文件,文件格式为每行一个环境变量

–expose=[] 指定容器暴露的端口,即修改镜像的暴露端口

–name=”” 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字

–net=”bridge” 容器网络设置:

  • bridge 使用docker daemon指定的网桥
  • host //容器使用主机的网络

–restart=”no” 指定容器停止后的重启策略:

  • no:容器退出时不重启
  • on-failure:容器故障退出(返回值非零)时重启
  • always:容器退出时总是重启

–rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)

留言

您的电子邮箱地址不会被公开。 必填项已用 * 标注