• Docker学习01


    安装Docker

    删除旧版本

    yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-engine
    

    初始化仓库(使用阿里云镜像)

    yum install -y yum-utils
    
    yum-config-manager 
        --add-repo 
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    安装docker引擎

    yum install docker-ce docker-ce-cli containerd.io
    

    启动docker

    systemctl start docker
    

    查看本地拉取的镜像

    docker images
    

    Docker的常用镜像命令

    查看docker版本信息

    docker version
    

    显示docker的系统信息,包括镜像和容器的数量

    docker info
    

    帮助命令

    docker 命令 --help
    帮助文档:https://docs.docker.com/engine/reference
    

    搜索镜像

    docker search
    

    下载镜像

    docker pull #下载镜像
    eg:
    	docker pull mysql == docker pull docker.io/library/mysql:latest
    

    删除指定容器

    docker rmi -f imagesID 
    

    Docker的常用容器命令

    新建容器并启动

    docker run [可选参数] image
    
    # 参数命令
    --name="Name" 容器命令,用来区分容器
    -d 后台运行
    -it 使用交互方式运行,进入容器查看内容(exit 退出容器并停止,ctrl+p+q退出容器不停止 )
    -p 指定容器的端口 
    	-p:8080:8080 主机端口:容器端口(常用)
    	-p 端口号
    -P 随机指定端口
    

    进入容器

    docker exec -it 名称orid /bin/bash
    

    列出运行中的容器

    docker ps 
    docker ps -a 列出历史运行的容器
    docker ps -n=? 显示最近运行的容器
    

    删除容器

    docker rm 容器id
    docker rm -f $(docker ps -aq) #强制删除所有的
    

    启动和停止容器的操作

    docker start 容器id
    docker restart 容器id
    docker sotp 容器id
    docker kill 容器id
    

    查看容器的ip地址

    docker inspect 名称
    docker inspect --format='{{.NetworkSettings.IPAddress}}' 名称
    

    常用其他命令

    后台启动镜像

    docker run -d 镜像名
    
    note: docker 容器使用后台运行,就必须要有一个前台进程,docker 发现没有应用,就会自动停止
    
    

    查看日志

    docker logs -f -t --tail n 容器
    

    查看容器内进程信息

    docker top 容器id
    

    查看镜像的元数据

    docker inspect 容器id
    

    进入当前正在运行的容器

    # 方式一  进入容器后开启一个新的终端
    docker exec -it 容器id /bin/bash
    
    # 方式二  进入容器正在执行的终端
    docker attach 容器id
    
    

    从容器内拷贝文件到主机上

    docker cp 容器id:file 目的主机路径
    
    eg:
    root@K8S-APP-T02:/root#docker ps
    CONTAINER ID   IMAGE                COMMAND                  CREATED        STATUS        PORTS                                                  NAMES
    8ff1ca894a6b   mysql:latest         "docker-entrypoint.s…"   23 hours ago   Up 23 hours   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
    b118954accef   nacos/nacos-server   "bin/docker-startup.…"   23 hours ago   Up 23 hours   0.0.0.0:8848->8848/tcp, :::8848->8848/tcp              nacos
    root@K8S-APP-T02:/root#docker exec -it 8ff1ca894a6b /bin/bash
    root@8ff1ca894a6b:/# ls
    bin  boot  dev	docker-entrypoint-initdb.d  entrypoint.sh  etc	home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    root@8ff1ca894a6b:/# cd /home
    root@8ff1ca894a6b:/home# ls
    root@8ff1ca894a6b:/home# touch test.txt
    root@8ff1ca894a6b:/home# ls
    test.txt
    root@8ff1ca894a6b:/home# exit
    exit
    root@K8S-APP-T02:/root#docker ps
    CONTAINER ID   IMAGE                COMMAND                  CREATED        STATUS        PORTS                                                  NAMES
    8ff1ca894a6b   mysql:latest         "docker-entrypoint.s…"   23 hours ago   Up 23 hours   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
    b118954accef   nacos/nacos-server   "bin/docker-startup.…"   23 hours ago   Up 23 hours   0.0.0.0:8848->8848/tcp, :::8848->8848/tcp              nacos
    root@K8S-APP-T02:/root#docker cp 8ff1ca894a6b:/home/test.txt /home
    root@K8S-APP-T02:/root#ls
    anaconda-ks.cfg  Desktop  Documents  Downloads  initial-setup-ks.cfg  Music  Pictures  Public  Templates  Videos
    root@K8S-APP-T02:/root#cd ..
    root@K8S-APP-T02:/#cd home/
    root@K8S-APP-T02:/home#ls
    config  sysadmin  sys-config.txt  test.txt  viewer
    root@K8S-APP-T02:/home#
    
    # 拷贝是一个手动过程,未来我们使用-V 卷技术,可以实现
    
    不论你在什么时候开始,重要的是开始之后就不要停止。 不论你在什么时候结束,重要的是结束之后就不要悔恨。
  • 相关阅读:
    eclipse中解决update maven之后jre被改成1.5的问题
    Navicat for MySQL密鈅
    静态创建和动态创建对象的区别
    vector相关操作总结
    C++的编码技巧相关总结
    关于VS中未经处理的异常的梳理
    头文件用于声明而不是定义
    SQL单表查询练习部分总结
    delete对象时会自动调用类的析构函数
    SQL中的sum在何时会返回为null
  • 原文地址:https://www.cnblogs.com/yunhgu/p/14741534.html
Copyright © 2020-2023  润新知