Docker学习笔记

本文档记录了在Centos7环境下搭建Docker的过程,以及Docker的常用命令,包括查看和管理镜像、容器,以及Dockerfile的常用指令。通过学习,作者体会到Docker并非想象中复杂,而是可以通过简单的命令进行高效操作。
摘要由CSDN通过智能技术生成

背景

最近有个项目客户要求用dockerfile部署,所以简单学了下docker,在此将一些比较实用的内容记录下来。

环境

系统Centos7(Docker要求版本在Centos内核3.1以上)

搭建

我是链接

Docker常用命令整理

  1. 查看镜像
    docker images
  2. 删除镜像
    docker rmi 镜像ID
  3. 查看运行中容器
    docker ps
  4. 查看所有容器
    docker ps -a
  5. 运行容器
    docker run -it 镜像名字
  6. 运行容器plus(小括号表示没有可以不写)
    docker run -it -d --name 容器名字 -p (外部地址:)外部端口:容器端口 镜像名字 镜像指令
  7. docker run指令大全
    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
    -d: 后台运行容器,并返回容器ID;
    -i: 以交互模式运行容器,通常与 -t 同时使用;
    -P: 随机端口映射,容器内部端口随机映射到主机的端口
    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    –name=“nginx-lb”: 为容器指定一个名称;
    –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
    –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
    -h “mars”: 指定容器的hostname;
    -e username=“ritchie”: 设置环境变量;
    –env-file=[]: 从指定文件读入环境变量;
    –cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
    -m :设置容器使用内存最大值;
    –net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
    –link=[]: 添加链接到另一个容器;
    –expose=[]: 开放一个端口或一组端口;
    –volume , -v: 绑定一个卷
  8. 删除容器
    docker rm 容器ID
  9. 运行容器指令
    docker exec -it 容器ID 指令(比如netstat -an | grep 8080等)
  10. 进入容器
    docker exec -it 容器ID /bin/bash
  11. 查看容器网络桥接配置
    docker network inspect bridge
  12. 保存并创建新的容器(一般在更改容器内部文件后操作,因为docker容器重启会初始化容器)
    docker commit 容器ID 新容器名称
  13. 根据dockerfile创建docker镜像
    docker build -t 镜像名称 dockerfile目录

Dockerfile常用命令整理

  1. 基础镜像,第一行必须是这个,注释除外
    FROM scratch(不以任何为基础)
    FROM <image>(:<tag/digest>)(小括号部分没有可以不填)
  2. 维护者信息
    MAINTAINER 维护者名字
  3. 创建环境安装目录
    WORKDIR 目录
  4. 添加文件,如果是压缩包会自动解压
    ADD 需要添加的文件 安装目录
  5. 设置环境变量
    ENV 变动名 变量内容
  6. 构建时运行,多个时不要写多行,后两种一般是可执行文件加上参数的格式
    RUN 指令 参数1 参数2
    RUN [“指令”, “参数1”, “参数2”]
    RUN [“参数1”, “参数2”]
  7. 启动时运行,多个时不要写多行
    CMD [“指令”, “参数1”, “参数2”]
  8. 复制文件
    COPY 本地文件路径 目标文件路径
  9. 开放端口
    EXPOSE 端口1 端口2 端口3

理解和感悟

其实玩过docker的人进入容器后的第一感觉——这不就是个虚拟机吗,纯净版的centos,进入了容器啥命令都不能用,真难受。不过后来发现可以用docker exec命令进行操作了,好像也没那么难受了。
后来我看了dockerfile的脚本文件,我就在想,这不都是最基础的命令吗,除了一些docker特有的命令,好像理解起来还是挺容易的。
有些技术并没有想象中那么复杂,只是我们被自己限制住了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值