Docker 使用笔记

mac下安装Docker

brew cask install docker

启动docker:进入launchpad,双击docker图标即可启动

Linux下安装Docker

https://yeasy.gitbooks.io/docker_practice/install/centos.html (CentOS)https://yeasy.gitbooks.io/docker_practice/install/ubuntu.html (Ubuntu)

Windows下安装Docker

https://yeasy.gitbooks.io/docker_practice/install/windows.html

Docker 概念

镜像:一个特殊的文件系统,提供容器运行所需的程序、库、资源等。可以把它看作一个类。

容器:容器的实质是进程,每个进程最好占用一个容器,比如 jenkins,wiki,jira,gitlab单独放在不同容器中。可以把它看作是镜像的一个实例。

仓库:相当于git的远程仓库,有公开的,也有私有的,表现形式是 :,每个标签即为一个远程镜像。

网络:Docker 允许通过外部访问容器或者容器互联的方式来提供网络服务。有多种网络模式。

数据管理:分为数据卷(volume)和挂载主机两种方式

  • 数据卷,是一个可供一个或多个容器使用的特殊目录,通过docker volume create vol_name 创建数据卷
  • 挂载主机,是挂载一个主机目录作为数据卷,docker容器启动时,通过 –mount 参数去实现
  • Docker 常用命令

    启动docker

    安装docker的时候已经提到如何启动docker

    镜像操作

    docker search 在官方仓库查找镜像

    获得镜像

    docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

    # docker方式获取jenkinsdocker pull jenkins/jenkins:lts

    运行镜像(启动容器)

    docker run [选项] IMAGE [命令][参数..]

    # 启动jenkinsdocker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts# -d :–detach 后台运行容器# -v :–volume 绑定挂载目录# -p : 绑定端口,主机端口:容器端口 8080是web端口,50000是从属服务器使用端口

    列出镜像

    docker image ls 列出全部镜像

    docker image ls 列出部分镜像

    # 列表包含了 仓库名、标签、镜像 ID、创建时间 以及 所占用的空间。REPOSITORY TAG IMAGE ID CREATED SIZEb3log/solo latest deba8aac9495 4 days ago 150MB

    镜像体积

    docker system df

    虚悬镜像

    仓库名和标签都为 的镜像

    docker image ls -f dangling=true 查看虚拟镜像

    docker image prune 删除虚拟镜像

    删除本地镜像

    docker image rm [选项] [ …] 删除本地镜像

    docker image rm $(docker image ls -q image_name) 成批删除镜像,用在某个镜像可能有不同tag,但想全部删除的情况

    Dockerfile

    作用:定制镜像

    构建镜像:docker build [上下文路径/URL/-],(docker build -t -f . 是常用命令)

    Dockerfile 常用指令:

    FROM 指定基础镜像

    RUN 执行命令

    # 举个例子# stretch 是空白镜像FROM debian:stretch# RUN最多是42层,所以不要滥用RUN,一个RUN一般是一个步骤,比如下方的编译、安装 redis 可执行文件可以放在一个步骤里执行,用 && 可以串联命令RUN buildDeps=’gcc libc6-dev make wget’ && apt-get update && apt-get install -y $buildDeps && wget -O redis.tar.gz “http://download.redis.io/releases/redis-5.0.3.tar.gz” && mkdir -p /usr/src/redis && tar -xzf redis.tar.gz -C /usr/src/redis –strip-components=1 && make -C /usr/src/redis && make -C /usr/src/redis install && rm -rf /var/lib/apt/lists/* && rm redis.tar.gz && rm -r /usr/src/redis && apt-get purge -y –auto-remove $buildDeps

    COPY [–chown=:] … 复制文件

    • 源路径可以有很多个,甚至可以用通配符
    • 源路径是相对路径
    • 目标路径可以是绝对路径,也可以是相对于工作目录的相对路径

    ADD [–chown=:] … 比COPY更高级的复制文件

    • 源路径可以是URL、压缩文件(会自动解压到目标路径)

    CMD 容器启动命令

    • shell 格式: CMD
    • exec 格式: CMD [“可执行文件”, “参数1”, “参数2″…]
    • 参数列表格式:CMD [“参数1”, “参数2″…]。指定ENTRYPOINT指令后,用CMD指定具体参数
    • 注意:CMD 的命令不能是后台运行的命令!例如,不能是 CMD service nginx start
    • 注意:CMD 推荐使用exec格式编写
    • 注意:一个Dockerfile只能有一个CMD指令
    郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
    上一篇 2022年6月24日 09:13
    下一篇 2022年6月24日 09:13

    相关推荐

    联系我们

    联系邮箱:admin#wlmqw.com
    工作时间:周一至周五,10:30-18:30,节假日休息