1. 程式人生 > 其它 >A ProtocolObject must begin with '{' at character 1 of ?{

A ProtocolObject must begin with '{' at character 1 of ?{

1. 映象命令

1.1 檢視本地映象

1.1.1 docker images

1.1.2 docker image ls

1.2 下載映象

docker pull 名字

1.3 刪除映象

1.4 搜尋映象

1.4.1 docker search 名字

引數--filter

  • 利用:如下顯示stars不低於100的映象

     docker search centos  --filter=stars=100
    

1.5 構建映象

1.5.1 根據執行中的容器生成新的映象

  • 原理:是將容器執行時的讀寫層變為只讀層,作為映象的一個新層

  • 使用過程:

    • 通過已經映象執行容器,進入容器內

      docker run  -it --name mycentos8 centos:centos8  /bin/bash 
      
    • 進入容器修改相關內容,比如新增某個軟體或者某個功能

    • 通過docker commit提交修改生成映象

      docker commit -m "Add openssh server"  -a "hwadee"  -c "EXPOSE 22"  --change='CMD ["/sbin/sshd","-D"]'   3ce01aadf05e  centos8:ssh 
      
      • -m: 提交的描述資訊
      • -a: 指定映象作者
      • e218edb10161:容器 ID
      • runoob/ubuntu:v2: 指定要建立的目標映象名
    • 使用新映象生成容器或測試

      docker run -itd  -p 2222:22  centos8:ssh
      
    • 將新映象push到容器倉庫

  • 缺點:製作的透明性較差,如果多次修改可能會分層較多導致映象臃腫,
    體積較大,影響執行效率。一般不推薦使用。

1.5.2 通過Dockerfile來製作映象

詳細連結:https://www.jianshu.com/p/eb4064392b3e

2. 容器命令

2.1 檢視容器:docker ps

預設是檢視執行中的容器

  • -a:檢視所有狀態的容器

    docker ps -a
    
  • -q:只檢視容器的ID

    docker ps -q
    

2.2 執行容器:docker run

命令格式

docker run -引數 映象名:tag 命令

如果映象名是唯一的,不指定tag也可以

  • 如下是使用ubuntu映象啟動容器,並且進入互動式介面

    docker run -it ubuntu /bin/bash
    
    • -i:互動式操作
    • -t:終端
  • 如下是在上述的基礎上後臺執行容器

    docker run -itd ubuntu /bin/bash
    
    • -d:Run container in background and print container ID

2.3 停止容器:docker stop

  • 使用:

    docker stop 容器ID
    

2.4 重啟容器:docker restart

  • 使用:

    docker restart 容器ID
    

2.5 進入容器

2.5.1 docker attach

  • 使用:

    docker attach 容器ID
    
  • 缺點:如果從這個容器退出,會導致容器的停止

2.5.2 docker exec

  • 命令格式:

    docker exec -it 容器ID /bin/bash
    

2.6 匯出容器:docker export

  • 使用:

    docker export 容器ID > xxx.tar
    

2.7 匯入容器:docker import

  • 使用:

    cat docker/xxx.tar | docker import - xxx:v1 
    

    此外,也可以通過指定的URL來匯入

    docker import http://example.com/exampleimage.tgz example/imagerepo
    
  • 然後進行拷貝 ,注意:執行docker命令時一定要退出容器,否則報錯

    從容器中拷出來是一樣的,docker cp 後面的位置調換一下即可

    // docker cp 本地路徑 容器長ID:容器路徑

    //Docker CP local path container long ID: container path

    docker cp /usr/local/test.txt 38ef22f922704b32cf2650407e16b146bf61c221e6b8ef679989486d6ad9e856:/usr/local/tomcat/webapps test.txt
    
    docker cp /usr/local/test.txt 38ef22f922704b32cf2650407e16b146bf61c221e6b8ef679989486d6ad9e856:/usr/local/tomcat/webapps test.txt
    

2.8 檢視容器埠情況

  • 使用:

    docker port 容器ID
    

3.容器內命令

3.1 檢視容器內web日誌

  • 使用:

    docker logs -f 容器ID
    

3.2 檢視容器內部執行的程序

  • 使用:

    docker top 容器ID
    

3.3 檢視Docker的底層資訊

  • 使用:

    docker inspect 容器ID