盘Docker吗?--Docker常规操作集锦

前言

一:Docker的常规操作

1.1:下载镜像

  • 默认都是使用公有仓库进行下载,在国内,我们需要进行镜像加速:

  • 加速手册可参考我的博客:https://blog.csdn.net/CN_TangZheng/article/details/105398139

  • 加速步骤:

    [root@docker ]# tee /etc/docker/daemon.json <<-'EOF'
    > {
    >   "registry-mirrors": ["https://yu1vx79j.mirror.aliyuncs.com"]
    > }
    > EOF
    [root@docker etc]# systemctl daemon-reload	'//重载Docker守护进程'
    [root@docker etc]# systemctl restart docker	'//重启Docker服务'
    

1.2:镜像常规操作

  • 搜索镜像:docker search 镜像名称

    [root@docker etc]# docker search nginx
    
  • 下载镜像:docker pull 镜像名称:(stars–星级:代表着镜像的使用率)

    [root@docker etc]# docker pull nginx
    
  • 查看已有镜像:docker images

    [root@docker ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    nginx               latest              ed21b7a8aee9        8 days ago          127MB
    
    
  • 查看镜像详细信息:docker inspect 镜像ID

    [root@docker ~]# docker inspect ed21b7a8aee9
    
    
  • 镜像下载完存放在:/var/lib/docker,下载的文件信息:/var/lib/docker/image/overlay2/repositories.json

  • 为镜像添加新标签:docker tag 仓库名:原标签 仓库名:新标签,标签添加完新旧标签是同时存在的

    [root@docker ~]# docker tag nginx:latest nginx:web
    [root@docker ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    nginx               latest              ed21b7a8aee9        8 days ago          127MB
    nginx               web                 ed21b7a8aee9        8 days ago          127MB
    
    
  • 删除标签:docker rmi 仓库名:标签

    [root@docker ~]# docker rmi nginx:web
    Untagged: nginx:web
    [root@docker ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    nginx               latest              ed21b7a8aee9        8 days ago          127MB
    
    
  • 删除镜像:docker rmi 镜像id,删除镜像id后此镜像所有的标签都删除

    [root@docker ~]# docker rmi ed21b7a8aee9 
    Untagged: nginx:latest
    Untagged: nginx@sha256:282530fcb7cd19f3848c7b611043f82ae4be3781cb00105a1d593d7e6286b596
    Deleted: sha256:ed21b7a8aee9cc677df6d7f38a641fa0e3c05f65592c592c9f28c42b3dd89291
    Deleted: sha256:8a305f371a6c3c445a1dfc500c1364743868a269ab8cdaf95902692e82168352
    Deleted: sha256:d079ef06ec1f10a8050887365f9a940b39547ba6bcc46b16a463e740984f3223
    Deleted: sha256:c3a984abe8a88059915bb6c7a1d249fd1ccc16d931334ac8816540b0eb686b45
    [root@docker ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    [root@docker ~]# docker pull nginx	'//再次重新下载一个镜像'
    
    
  • 导出镜像(保存镜像)到相应目录:docker save -o 相应目录 仓库名:标签

    [root@docker ~]# docker save -o /opt/nginx001 nginx:latest	
    [root@docker ~]# ls /opt
    containerd  nginx001
        
    
  • 导入镜像:

    • 方法1、docker load < 镜像
    • 方法2、docker load --input 镜像
    [root@docker ~]# docker load < /opt/nginx001 	'//方法一'
    Loaded image: nginx:latest
    [root@docker ~]# docker load --input /opt/nginx001	'//方法二'
    Loaded image: nginx:latest
    
    
  • 上传镜像:

    mark

    [root@docker ~]# docker login --username=汤政大人 registry.cn-hangzhou.aliyuncs.com	'//先登录'
    Password: 
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    
    Login Succeeded
    [root@docker ~]# docker tag ed21b7a8aee9 registry.cn-hangzhou.aliyuncs.com/tang_docker001/tang_docker001:latest
    [root@docker ~]# docker push registry.cn-hangzhou.aliyuncs.com/tang_docker001/tang_docker001:latest	'//开始上传'
    The push refers to repository [registry.cn-hangzhou.aliyuncs.com/tang_docker001/tang_docker001]
    d37eecb5b769: Pushed 
    99134ec7f247: Pushed 
    c3a984abe8a8: Pushed 
    latest: digest: sha256:7ac7819e1523911399b798309025935a9968b277d86d50e5255465d6592c0266 size: 948
    
    

    mark

1.3:容器常规操作

  • 创建容器:docker create -it 仓库名:标签 登录环境

    [root@docker ~]# docker create -it nginx:latest /bin/bash
    3bf2bde0e0b9fe91a643746d4e00e37e234487b9609ea083071831776aebf50a
    '//-i:让容器的标准输入保持打开'
    '//-t:让docker分配一个伪终端'
    
  • 查看容器状态:docker ps -a

    [root@docker ~]# docker ps -a	'//状态为created'
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    3bf2bde0e0b9        nginx:latest        "/bin/bash"         7 seconds ago       Created                                 wizardly_swanson
    '//-a:列出最近一次启动的容器'
    
  • 启动容器:docker start 容器id

    [root@docker ~]# docker start 3bf2bde0e0b9	'//启动容器'
    3bf2bde0e0b9
    [root@docker ~]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    3bf2bde0e0b9        nginx:latest        "/bin/bash"         3 minutes ago       Up 1 second         80/tcp              wizardly_swanson
    
    
  • 登陆正在运行的容器:两个方法

    • 方法一:docker exec -it 容器id 环境
    • 方法二:docker run -it 容器名:标签 环境
    [root@docker ~]# docker exec -it 36c6af332247 /bin/bash
    [root@36c6af332247 /]# ls	'//可以输入命令'
    anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    [root@36c6af332247 /]# exit	'//退出'
    exit
    [root@docker ~]# docker ps -a	'//刚刚的容器依旧是up状态'
    
    
  • 停止容器:docker stop 容器id

    [root@docker ~]# docker stop 3bf2bde0e0b9
    
  • 启动容器并执行命令(执行完自动退出):docker run 镜像 环境 -c 命令(如果没哟镜像会自动下载)

    [root@docker ~]# docker run centos:7 /usr/bin/bash -c ls /	'//启动centos:7容器并执行ls命令'
    [root@docker ~]# docker ps -a	'//发现此容器已经正常退出'
        '//此命令执行完成后会自动退出,释放资源,状态是exited(0)'
    
  • 启动容器并执行命令(持续在后台运行):

    [root@docker ~]# docker run -d  centos:7 /bin/bash -c "while true;do echo hello;done"
    6101ea6eedbf7a1dcc75bb9d7cc1eb94e83b343b6829b6546d6ceda318545df6
    '//-c:命令'
    
  • 容器导出:

    [root@docker ~]# docker export 6101ea6eedbf > /opt/centos7
    
    
  • 容器导入(会生成镜像,而不会创建容器):

    [root@docker ~]# cat /opt/centos7 |docker import - centos7.1
    sha256:59faa021c1f1d1a9c8f1f8800a0392c7a7796968b2b05868f27e6f8bf6e63ac6
    [root@docker ~]# docker images
    REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
    centos7.1                                                         latest              59faa021c1f1        5 seconds ago       203MB
    。。。省略内容
    
  • 删除容器(先停止容器在删除):docker rm 容器id

    [root@docker ~]# docker rm 4aeeecce12fd 
    4aeeecce12fd
    [root@docker ~]# docker ps -a
    
    
  • 批量删除容器:docker ps -a |awk '{print "docker rm "$1}'|bash

    [root@docker ~]# docker ps -a |awk '{print "docker rm "$1}'|bash	'//'
    
    

1.4:博客结束,谢谢赏阅!有疑问可私信或者评论区交流!

原创文章 172 获赞 97 访问量 5万+

猜你喜欢

转载自blog.csdn.net/CN_TangZheng/article/details/105452875