1.安装
1.1.Linux 上安装
操作系统的配置安装可以参考 Linux 系统生产环境配置指南 https://blog.51cto.com/waringid/5782872
内核要求3.10或以上版本 系统架构要求64位(x86_64) |
a、安装
b、禁止SELinux
c、不使用 sudo 执行 docker
1.2.其他系统安装
Windows 和 MAC 系统的容器安装参考Destop工具,如官网所示。https://docs.docker.com/ee/desktop/
1.3.确认版本
2.常用操作
2.1.运行镜像
debian 是使用的镜像名称,Docker 从 Docker Hub 下载 Debian 的最新版本的镜像。可以通过以下的指令执行容器中的 Shell。
默认情况下新的镜像从 Docker Hub 在线下载,国内速度较慢,可以使用镜像加速的方式 |
/bin/bash 表示获得 bash shell 。当退出 shell 时,容器就会停止(主进程运行多久,容器就运行多久)
2.2.基础指令
进入 container容器后移动了 /bin 的位置导致该容器无法使用,通过主机端的指令可以看到容器的详细信息。
可以看到在这个容器内,哪些文件被改动过;例如被删除的 /bin 以及新增的 /basket 和它下面的文件等。
查看容器的执行 log 情况。
查看所有的容器,包括已经停止的容器。由于之前的容器已被破坏(移动了 /bin,无法正常启动)通过 rm 的容器指令删除。
清理已停止的容器 |
创建 cowsay 的容器应用,先启动容器并在容器中安装系统包
2.3.Dockerfile 创建镜像
进一步可以通 Dockerfile 的 ENTRYPOINT 指令执行可执行文件,同时能处理传给 docker run 的参数。在 Dockerfile 的最后一行加入 ENTRYPOINGT ["/usr/games/cowsay"] 并再次生成新镜像,新生成的镜像可以无需指定 cowsay 指令。
也可以在 ENTRYPOINT 中指定脚步既简化指令操作又可以保留原有命令的输入能力。在 Dockerfile 同文件夹下新建以下的脚本,然后通过 ENTRYPOINT 命令调用。
Dockerfile |
2.4.镜像注册服务
注册(registry)托管和发布镜像的服务,默认为 docker Hub。 仓库(repository)相关镜像的集合 标签(tag)仓库中镜像的识别号,由英文和数字组成。 |
docker build 创建镜像
docker push 上传镜像(个人,需要注册账户)
docker pull 下载镜像
镜像命名空间 1、字符串和 / 开头 属于个人用户。例如 amouat/reveljs 是用户 amouat 上传的 reveljs 镜像。 2、不包含 / 属于认证组织。例如 debian 是官方镜像的发行版本 3、已主机名或 IP 开头 第三方组织或企业版本 |
2.5.使用 redis 镜像
1、先下载 redis 镜像然后让它在后台执行
2、通过--link 指令将新的容器 redis 和已运行的容器 myredis 连接起来,并且在新容器中以 redis 作为 myredis 容器的主机名。Docker 会在新容器中的 /etc/hosts 里添加一条新记录,把 redis 指向 myredis 的 IP 地址。
数据间的传输和共享通过 Dockerfile 中的 VOLUME 指令或运行时使用 -v 选项。
默认情况下目录或文件会挂载在主机的 Docker 安装目录下(通常是 /var/lib/docker),实际运行时可以指定具体的挂载路径(docker run -d -v /host/dir:/container/dir test/webserver)
可以通过使用 --volumes-from 将新容器连接到 Redis 数据库目录。
VOLUME /data
进入容器空间 |
3、清理容器