docker基礎(chǔ):鏡像,容器命令(三)

一、鏡像命令
在docker基礎(chǔ):命令詳解(二)中已經(jīng)介紹了如何登錄dockerhub及私服,下面進(jìn)行鏡像的命令的學(xué)習(xí)。
1、鏡像
先說一下鏡像和容器的關(guān)系,鏡像類似于一個(gè)母板,在公網(wǎng)中進(jìn)行拉取創(chuàng)建。容器相當(dāng)于母板復(fù)制出來的產(chǎn)品,每個(gè)產(chǎn)品有不同的編號,端口號等。也就是說現(xiàn)有鏡像,再有容器。有人會問了,沒有鏡像,容器就不能運(yùn)行嗎?不是的。當(dāng)創(chuàng)建一個(gè)容器時(shí),如果沒有鏡像,那么就會根據(jù)你給的路徑自動去下載鏡像,然后生成容器,默認(rèn)是從共網(wǎng)上下載。

2、拉取鏡像:docker pull 鏡像名
      拉取鏡像之前,先要明確自己需要什么鏡像,知道鏡像有哪些版本,我需要兩個(gè)鏡像,tomcat和mysql。
      可以看到有很多鏡像,我在這里只是用官網(wǎng)鏡像
Paste_Image.png
Paste_Image.png
 拉取tomcat鏡像:docker pull tomcat
Paste_Image.png
  拉取mysql鏡像:docker pull mysql
Paste_Image.png
3、查看鏡像:docker images 
          能看到我已經(jīng)下載了兩個(gè)鏡像。
Paste_Image.png
4、修改鏡像tag:docker tag 鏡像名/鏡像ID  自定義鏡像名:自定義tag名
      docker tag tomcat tomcat-test:tomcat7  創(chuàng)建出一個(gè)新的tomcat鏡像  tag是自定義的
Paste_Image.png
       上面的圖片中,大家可能注意到了,有兩個(gè)id相同的鏡像,這樣就有問題了,刪除的時(shí)候怎么處理?
5、刪除鏡像:docker rmi 鏡像ID/鏡像名:tag名
              -f 強(qiáng)制刪除,即使鏡像被占用。
              刪除多個(gè)鏡像:docker rmi A B C
Paste_Image.png
6、構(gòu)建鏡像:暫時(shí)不做。

7、構(gòu)建鏡像方式2:dockerfile文件構(gòu)建。
      
8、查看指定鏡像的歷史信息:docker history 鏡像id
9、將鏡像推送到遠(yuǎn)程倉庫,默認(rèn)是dockerhub:docker push 鏡像id
10、docker image 的命令:
        build Build an image from a Dockerfile
        構(gòu)建    構(gòu)建一個(gè)鏡像從一個(gè)dockerfile
         history Show the history of an image
        歷史    顯示鏡像的歷史。
        import Import the contents from a tarball to create a filesystem image
        導(dǎo)入   過壓縮包制作鏡像
        inspect Display detailed information on one or more images
        檢查   顯示一個(gè)或多個(gè)鏡像的詳細(xì)信息。
        load Load an image from a tar archive or STDIN
        加載   將一個(gè)鏡像save成壓縮包后,在用load命令加載成一個(gè)鏡像
        例如:docker load -i/<  /存放鏡像的路徑/鏡像.tar
        ls List images
        ls    列出鏡像
        prune Remove unused images
        刪除   刪除未使用的鏡像
        pull Pull an image or a repository from a registry
        從注冊表中拉出鏡像或存儲庫。
        push Push an image or a repository to a registry
        將鏡像或存儲庫推入注冊表
        rm Remove one or more images
        刪除 一個(gè)或多個(gè)圖像
        save Save one or more images to a tar archive (streamed to STDOUT by default)
        保存一個(gè)或多個(gè)圖像到一個(gè)tar歸檔文件(流到stdout默認(rèn)),可以指定到某個(gè)文件下
        例如:docker save 鏡像名:tag -o /需要存放鏡像的路徑/定義一個(gè)名字.tar  
        tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
        標(biāo)簽創(chuàng)建一個(gè)標(biāo)簽target_image指source_image

二、容器命令
1、查看容器的命令: docker ps -a
-a, --all Show all containers (default shows just running)
- -所有顯示所有容器(默認(rèn)顯示剛剛運(yùn)行)
-f, --filter filter Filter output based on conditions provided
基于濾波器提供的濾波器濾波器輸出條件
--format string Pretty-print containers using a Go template
使用滾動模板格式化字符串漂亮的打印容器
--help Print usage
——幫助打印使用
-n, --last int Show n last created containers (includes all states) (default -1)
-最后一個(gè)int顯示上次創(chuàng)建的容器(包括所有狀態(tài))(默認(rèn)值1)
-l, --latest Show the latest created container (includes all states)
最新顯示的最新創(chuàng)建的容器(包括所有國家)
--no-trunc Don't truncate output
——NO TRUNC不截?cái)噍敵?br> -q, --quiet Only display numeric IDs
只顯示容器ID
-s, --size Display total file sizes
大小 顯示總文件大小
2、最新創(chuàng)建的容器(最后啟動的):-l
只查看容器的id:-q
顯示容器的大小:-s
3、刪除容器:docker rm 容器id/容器名
批量刪除:docker rm 容器id/容器名 容器id/容器名 容器id/容器名
4、啟動已經(jīng)創(chuàng)建的容器:docker start 容器id/容器名
5、重新啟動容器:docker restart 容器id/容器名
6、停止容器:docker stop 容器id/容器名
7、后臺創(chuàng)建容器: docker run --name (自定義容器名) -d -p (訪問端口:映射端口) 鏡像id
例:創(chuàng)建一個(gè)mysql的容器,用戶名root,密碼是root
docker run --name mysql -d -p 53306:3306 -e MYSQL_ROOT_PASSWORD=root
8、可操作容器創(chuàng)建:docker run --name (自定義容器名) -it -p (訪問端口:映射端口) 鏡像id //bin/bash
9、容器與容器之間的連接:--link 連接的容器:容器,例如:--link tomcat:mysql ,這樣tomcat就能訪問mysql了。

  遇到的問題:
    [root@master ~]# docker run --name registry_server -d -p 5000:5000 
     WARNING: IPv4 forwarding is disabled. Networking will not work.
   解決方案:
      # vi /etc/sysctl.conf
      添加如下代碼:
          net.ipv4.ip_forward=1

      重啟network服務(wù)
      # systemctl restart network

      查看是否修改成功
      # sysctl net.ipv4.ip_forward
      如果返回為“net.ipv4.ip_forward = 1”則表示成功了

10、容器創(chuàng)建之后,再次進(jìn)入容器:docker  container attach 容器id(有些鏡像進(jìn)不去,回車后沒有反映說明該容器不能進(jìn)入ctrl+c強(qiáng)制退出后容器會停止運(yùn)行)(現(xiàn)在已經(jīng)不建議是用了)
11、操作容器,不進(jìn)入:docker  container exec 容器id 操作命令(ls,等)
12、停止一個(gè)或多個(gè)指定容器進(jìn)程:docker kill 鏡像id/名稱或容器id\名稱
13、暫停某個(gè)容器的所有進(jìn)程:docker pause 容器id/名稱
14、恢復(fù)某個(gè)容器的所有進(jìn)程:docker unpause 容器id/名稱
15、查看容器詳情:docker container inspect 容器id
16、docker container 命令使用:
    attach Attach to a running container
    附加到正在運(yùn)行的容器上
    commit Create a new image from a container's changes
    從容器的更改中創(chuàng)建一個(gè)新映像
    cp Copy files/folders between a container and the local filesystem
    在容器和本地文件系統(tǒng)之間復(fù)制文件/文件夾
    create Create a new container
    創(chuàng)建一個(gè)新容器
    diff Inspect changes to files or directories on a container's filesystem
    差異檢查容器文件系統(tǒng)中文件或目錄的更改。
    exec Run a command in a running container
    在運(yùn)行的容器中運(yùn)行命令
    export Export a container's filesystem as a tar archive
    導(dǎo)出導(dǎo)出一個(gè)容器的文件系統(tǒng)作為一個(gè)TAR歸檔文件
    inspect Display detailed information on one or more containers
    檢查在一個(gè)或多個(gè)容器上顯示詳細(xì)信息。
    kill Kill one or more running containers
    殺死一個(gè)或多個(gè)正在運(yùn)行的容器
    logs Fetch the logs of a container
    日志獲取容器的日志
    ls List containers
    ls列出的容器
    pause Pause all processes within one or more containers
    在一個(gè)或多個(gè)容器中暫停所有進(jìn)程
    port List port mappings or a specific mapping for the container
    端口列表端口映射或容器的特定映射
    prune Remove all stopped containers
     刪除所有停止的容器
    rename Rename a container
    重命名容器
    restart Restart one or more containers
    重新啟動一個(gè)或多個(gè)容器
    rm Remove one or more containers
    刪除一個(gè)或多個(gè)容器
    run Run a command in a new container
    在新容器中運(yùn)行命令
    start Start one or more stopped containers
    啟動一個(gè)或多個(gè)已停止的容器
    stats Display a live stream of container(s) resource usage statistics
    統(tǒng)計(jì)信息顯示一個(gè)動態(tài)的容器資源使用統(tǒng)計(jì)數(shù)據(jù)流。
    stop Stop one or more running containers
    停止一個(gè)或多個(gè)正在運(yùn)行的容器
    top Display the running processes of a container
    頂部顯示容器的運(yùn)行過程。
    unpause Unpause all processes within one or more containers
    取消暫停取消暫停所有過程的一個(gè)或多個(gè)容器內(nèi)
    update Update configuration of one or more containers
    更新一個(gè)或多個(gè)容器的配置
    wait Block until one or more containers stop, then print their exit codes
    等待塊直到一個(gè)或多個(gè)容器停止,然后打印出它們的出口代碼。

如果遇到命令不好用,建議去查相應(yīng)的--help命令

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,756評論 0 120
  • Docker — 云時(shí)代的程序分發(fā)方式 要說最近一年云計(jì)算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,850評論 15 147
  • 一、Docker 簡介 Docker 兩個(gè)主要部件:Docker: 開源的容器虛擬化平臺Docker Hub: 用...
    R_X閱讀 4,521評論 0 27
  • 以下原文轉(zhuǎn)載于(https://docs.docker.com/docker-for-mac/)(想找中文版的最新...
    Veekend閱讀 7,789評論 0 17
  • 像一顆有棱角的小石子 被時(shí)間推著趕著朝前走 只是隨著世人潮流 沒有人告訴對與錯(cuò) 懵懵懂懂跌跌撞撞中 一心想磨去棱角...
    驚歲閱讀 458評論 0 2

友情鏈接更多精彩內(nèi)容