Docker学习

这里不讲Docker是什么?怎么用?既然学到了Docker,一定知道自己为什么要学习它。这里只是对学习过程中遇到的命令和常用命令进行总结!!!
Docker中文文档
Docker英文文档
Docker官网
阿里云开发者中心
我的博客

1. Docker安装(centos)

  1. 更新yum(推荐,非必须)
    yum update
  2. 安装docker依赖库
    $ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
  3. 设置稳定的存储库
    $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
  4. 安装最新版的docker
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  5. 安装指定版本的docker(可选)
    $ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
    查看docker版本
    $ yum list docker-ce --showduplicates | sort -r
    Installed Packages
    docker-ce.x86_64            3:19.03.4-3.el7                    docker-ce-stable 
    docker-ce.x86_64            3:19.03.4-3.el7                    @docker-ce-stable
    docker-ce.x86_64            3:19.03.3-3.el7                    docker-ce-stable 
    docker-ce.x86_64            3:19.03.2-3.el7                    docker-ce-stable 
    docker-ce.x86_64            3:19.03.1-3.el7                    docker-ce-stable 
    docker-ce.x86_64            3:19.03.0-3.el7                    docker-ce-stable 
    docker-ce.x86_64            3:18.09.9-3.el7                    docker-ce-stable 
    docker-ce.x86_64            3:18.09.8-3.el7                    docker-ce-stable 
    docker-ce.x86_64            3:18.09.7-3.el7                    docker-ce-stable 
    docker-ce.x86_64            3:18.09.6-3.el7                    docker-ce-stable 
    
  6. 启动docker
    $ sudo systemctl start docker
  7. HelloWorld
    $ sudo docker run hello-world
  8. 更换阿里云镜像(先获取专属镜像加速链接)
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["专属镜像加速链接"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

2. 基本命令

  1. 帮助命令
    docker version :查看docker的各项版本信息
    docker info :查看docker的详细信息
    docker --help :同linux的--help
    
  2. 镜像命令(部分)
    1. 查看当前本地的镜像
    docker images
    2. 查看当前本地所有的镜像(docker中的镜像可以理解为一层层的封装,还有可能依赖于其它的镜像,使用这个可以全部查看)
    docker images -a
    3. 只显示镜像ID
    docker images -q
    4. 显示的所有的信息
    docker images --no-trunc
    5. 查找镜像
    docker search [镜像名称]
    6. 下载镜像(可以不指定版本号,下载的是最新版)
    docker pull [镜像名称:版本号]
    7. 删除镜像
    docker rmi [镜像名称或者ID]
    docker rmi -f [镜像] : 强制删除
    docker rmi -f [镜像1] [镜像2]... : 删除的多个镜像
    docker rmi -f $(docker images -aq)  : 删除所有镜像
    8. 提交新的镜像
    docker commit -m="提交信息" -a="作者" [容器ID] [镜像名称]:[版本号]
    
  3. 容器命令(部分)
    1. 启动容器
    docker run [镜像名称或ID] 
    docker run -it --name [镜像] : 交互模式运行容器,并且分配一个伪终端
    docker run -d [镜像] : 后台运行容器(启动守护式容器)
    -P : 随机端口映射
    -p : 指定端口映射
    2. 当前正在运行的所有容器
    docker ps
    3. 上次运行的容器
    docker ps -l
    4. 之前运行的n个容器
    docker ps -n 2
    5. 退出容器
    docker exit : 容器停止并且退出
    ctrl + q + p : 只进行退出,容器继续运行
    6. 启动容器
    docker start [容器名称或者ID]
    7. 重启容器
    docker restart [容器]
    8. 停止容器
    docker stop [容器]
    9. 强制停止容器
    docker kill [容器] 
    10. 删除容器
    docker rm [容器]
    docker rm -f $(docker ps -aq) 删除多个容器
    docker ps -aq | xargs docler rm 删除多个容器
    11. 查看容器日志
    docker logs -f -t --tail [容器]
    -t 时间戳
    -f 最新日志打印
    --tail 显示多少条
    12. 查看容器中运行的进程
    docker top [容器]
    13. 查看容器的内部细节
    docker inspect [容器]
    14. 进入正在运行的容器
    docker exec -it [容器] bashShell  : 可以实现不用进入容器但是可以对容器内部的操作
    docker attach [容器] : 直接进入容器
    15.  从容器内拷贝文件到到主机上(从主机到容器同理)
    docker cp [容器ID]:[要拷贝文件的路径] [目标主机路径]
    
  4. 容器数据卷
    1. 使用命令方式添加数据卷
    docker run -it -v [宿主机目录]:[容器内目录] [镜像]
    2. 容器只读方式
    docker run -it -v [宿主机目录]:[容器内目录]:ro [镜像]
    3. 使用DockerFile添加数据卷
    FROM centos
    
    ENV LOCAL /usr/local/
    
    VOLUME ["/data1","/data2"]
    
    WORKDIR $LOCAL
    
    RUN touch newfile
    
    CMD /bin/bash
    
    4. 构建DockerFile
    docker build -f [DockerFile] -t [新的镜像名称]:[TAG] [DockerFile] [路径]
    如:docker build -f DockerFile -t tianqb/centos:1.1 .
    
    5. --volumes-from : 容器间传递共享
    docker run -it --name define_centos tianqb/centos:1.1
    docker run -it --name 02centos --volumes-from define_centos tianqb/centos:1.1
    
  5. DockerFile体系
    1. 保留关键字、
    FROM : 基础镜像
    FROM centos
    
    MAINTAINER : 维护者
    MAINTAINER tianqb <tianqingbo@tianqb.cn>
    
    RUN : 在构建过程中需要执行的命令
    RUN echo “HELLO”
    
    EXPOSE : 向外界暴露的端口
    EXPOSE 80
    
    WORKDIR : 构建完成进入到的工作目录
    WORKDIR /usr/local
    
    ENV : 自定义环境变量
    ENV LOCAL /usr/lcoal
    
    ADD : 将宿主的文件拷到镜像并进行解压或者自动处理URL
    COPY  : 同ADD 但是只负责拷贝
    
    VOLUME : 挂载容器数据卷
    VOLUME ["/data1","/data2"]
    
    指定容器启动需要执行的命令
    CMD :可以拥有多个CMD 但是只有一个CMD起作用 可以被docker run命令所带的参数代替 
    ENTRYPOINT : 不会被替代 作用为追加
    
    ONBUILD : 该镜像被继承时执行的动作
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值