美文网首页
Docker入门以及一些常用命令

Docker入门以及一些常用命令

作者: 用IE的都是狗 | 来源:发表于2021-07-07 01:14 被阅读0次

    这两天学了一下docker,做下笔记。网上看了一些视频,阮一峰老师的教程写的很好,点击访问

    相关链接

    docker官网

    Play with Docker,一个支持在线跑docker命令的演练场,初学者免去自己搭环境,免费版每次4小时

    安装docker,菜鸟教程里的装docker

    什么是docker

    docker像个虚拟机/沙箱,可以将软件或文件运行在一个与真实系统(宿主机)隔离的环境里。与虚拟机不同的是,docker无需像传统虚拟机一样全量模拟系统,其调用的系统资源依赖于宿主机并与宿主机隔离,减少了较传统虚拟机而言的系统开销。

    使用了docker,可以将需要复杂配置的软件和环境放到一起,迁移或部署的时候,直接将整个打包带走,这种拆分式的部署减少了耦合,极大提高了运维效率。

    docker相关概念

    镜像

    image是docker里的镜像,类似于平时安装虚拟机时的ios文件。镜像可以看成是容器的模板。镜像可以从docker仓库中下载,或者从本地环境中封装制作。

    容器

    container是docker里的容器,容器就像是安装之后的虚拟机。容器可以看成是镜像的实例,docker通过镜像文件生成容器。

    仓库

    repository是docker镜像的远端仓库,Docker hub是Docker官方维护的仓库。可以从仓库中拉取现成的镜像到本地运行。

    Dockerfile

    Dockerfile是用于构建镜像的配置文件,可以使用docker build命令构建镜像。配置文件里可以自定义构建步骤。

    .tar文件

    .tar文件是镜像导出的文件,可以通过文件方式传输到其他地方运行。

    引用一位B站up主的图,说明docker概念之间的关系https://www.processon.com/view/link/5d836beae4b021bb66447353

    docker相关操作和命令

    查看docker相关信息

    docker version
    # 或者
    docker info
    

    查看docker是否启动了

    systemctl status docker
    # 或者
    service docker status
    

    没启动的话,启动docker

    systemctl start docker
    # 或者
    service docker start
    

    从仓库拉取镜像

    # 默认拉取最新版本
    docker pull nginx
    # 拉取最新版本
    docker pull nginx:latest
    # 拉取指定版本
    docker pull nginx:版本
    

    查看本地镜像

    docker image ls
    或者
    docker images
    

    移除镜像

    docker image rm [image_name]
    # 或者
    docker rmi [image_name]
    

    通过镜像启动一个新容器

    docker run -d -p 8080:80 -v /data:/usr/share/nginx/html --name my-nginx nginx
    # 参数说明
    # -d 运行在后台
    # -p 8080:80 将宿主机的8080端口映射到容器的80端口
    # -v /data:/usr/share/nginx/html将宿主机的/data映射到容器的/usr/share/nginx/html
    # --name my-nginx 设置容器名称为my-nginx
    

    进入容器shell

    docker exec -it [container_id] bash
    # 参数说明
    # -it 将容器shell映射到当前shell
    # [container_id]为容器的id,可以简写前缀部分
    # bash 运行容器的bash
    

    查看容器

    # 正在运行的容器
    docker ps
    # 全部容器
    docker container ls --all
    

    停止容器

    docker container kill [container_id]
    # 或者
    docker kill [container_id]
    # [container_id]为容器的id,可以简写前缀部分
    

    移除容器

    # 需要先停止容器
    docker rm [container_id]
    # 或者强制移除
    docker rm -f [container_id]
    # [container_id]为容器的id,可以简写前缀部分
    

    将容器封装为镜像

    docker commit [container_id] [image_name]
    # 参数说明
    # [container_id]为容器的id,可以简写前缀部分
    # [image_name]为封装之后的镜像名
    

    或者通过Dockerfile文件,使用docker build命令来构建镜像

    docker image build -t [image] [path]
    # 或者
    docker build -t [image] [path]
    # 参数说明
    # -t 为构建的镜像指定名称
    # [image] 镜像名称
    # [path] Dockerfile所在的路径,.表示当前路径
    

    Dockerfile语法参考,示例文件:

    FROM nginx
    # 基于nginx镜像构建
    ADD ./ /user/share/nginx/html/
    # 将当前目录下的所有文件复制到镜像里的/user/share/nginx/html/下
    

    将镜像导出为.tar文件

    docker save [image_name] > [output_file]
    # [image_name]需要导出的镜像
    # [output_file]导出的.tar文件,
    # 例如:docker save nginx > nginx.tar 将nginx镜像导出到当前目录的nginx.tar文件中
    

    从.tar文件导入镜像

    docker load < [tar]
    # 参数说明
    # [tar]为需要导入的tar文件,例如nginx.tar
    

    相关文章

      网友评论

          本文标题:Docker入门以及一些常用命令

          本文链接:https://www.haomeiwen.com/subject/yvfnultx.html