當前位置:
首頁 > 知識 > Docker基本操作

Docker基本操作

Docker是一個輕量級的基於進程的虛擬化解決方案。簡單來說,Docker是將應用程序和運行環境一起打包成一個容器,進而可以發布到其他平台上運行。

環境:Ubuntu 18.04.1 LTS

安裝Docker

root@jaking-virtual-machine:~# apt-get install -y docker-engineReading package lists... DoneBuilding dependency tree Reading state information... Done...root@jaking-virtual-machine:~# docker versionClient:Version:18.06.1-ce APIversion:1.38Goversion:go1.10.4Gitcommit:e68fc7aBuilt:Fri Oct1919:43:142018OS/Arch:linux/amd64Experimental:falseServer:Engine:Version:18.06.1-ce APIversion:1.38(minimum version1.12) Goversion:go1.10.4Gitcommit:e68fc7aBuilt:Thu Sep2702:39:502018OS/Arch:linux/amd64Experimental:falseroot@jaking-virtual-machine:~# systemctl start dockerroot@jaking-virtual-machine:~# systemctl enable dockerSynchronizing stateofdocker.servicewithSysV service scriptwith/lib/systemd/systemd-sysv-install.Executing:/lib/systemd/systemd-sysv-installenabledocker

搜索ubuntu相關的容器

root@jaking-virtual-machine:~# docker search ubuntuNAME DESCRIPTION STARS OFFICIAL AUTOMATEDubuntu Ubuntuisa Debian-based Linux operating sys…8838[OK] dorowu/ubuntu-desktop-lxde-vnc Ubuntuwithopenssh-serverandNoVNC247[OK]rastasheep/ubuntu-sshd Dockerized SSH service, builtontopofoffi…184[OK]consol/ubuntu-xfce-vnc Ubuntu containerwith"headless"VNC session…136[OK]ansible/ubuntu14.04-ansible Ubuntu14.04LTSwithansible95[OK]ubuntu-upstart Upstartisan event-based replacementforth…92[OK]

下載容器

root@jaking-virtual-machine:~# docker pull ubuntu-upstart Using defaulttag:latestlatest:Pulling from library/ubuntu-upstart8387d9ff0016: Pullcomplete3b52deaaf0ed: Pullcomplete4bd501fad6de: Pullcompletea3ed95caeb02: Pullcompletea6dc1658c730: Pullcomplete9ed623dca71b:Pullcomplete998ee72febf9: Pullcomplete437038dc2fba:Pullcompleteda0ee05a1a1d: Pullcomplete1e1c3e99deb1: Pullcomplete4fcc22d7b2a1: Pullcomplete6c7dda5571e4: PullcompleteDigest:sha256:597dfb1868012dcd04a705572dbc1542cb7598bce0eaa1c2656eb3acfc8b51d2Status:Downloaded newer imageforubuntu-upstart:latest

查看容器的鏡像

root@jaking-virtual-machine:~# docker images ubuntu-upstartREPOSITORYTAGIMAGEID CREATED SIZEubuntu-upstart latest b28219773b9b2years ago253MB

從上面的結果可以看到,容器已經成功下載。利用下載的ubuntu-upstart容器,可以運行一個簡單的程序,此處以「Hello Docker」為例:

root@jaking-virtual-machine:~# docker run ubuntu-upstart /bin/echo Hello DockerHello Docker

還可以使用其他容器,如使用ubuntu作為容器,下載操作如下:

root@jaking-virtual-machine:~# docker pull ubuntuUsingdefaulttag: latestlatest: Pullingfromlibrary/ubuntu32802c0cfa4d: Pull complete da1315cffa03: Pull complete fa83472a3562: Pull complete f85999a86bef: Pull complete Digest: sha256:6d0e0c26489e33f5a6f0020edface2727db9489744ecc9b4f50c7fa671f23c49Status: Downloaded newer imageforubuntu:latestroot@jaking-virtual-machine:~# docker images ubuntuREPOSITORY TAG IMAGE ID CREATED SIZEubuntu latest 93fd78260bd1 10 days ago 86.2MB

Docker的容器操作

當Docker中包含了容器,就如同虛擬機中安裝了操作系統一樣,可以運行、安裝軟體、做一些設置。現在就可以運行之前下載的ubuntu:

root@jaking-virtual-machine:~# docker run -i -t ubuntu /bin/bash

#運行一個名為ubuntu的容器#i選項表示捕獲標準輸入和輸出;t選項表示分配的終端和控制台root@05559b460591:/#root@05559b460591:/# uname -aLinux05559b4605914.15.-36-generic#39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linuxroot@05559b460591:/# exit#退出容器exit

root@jaking-virtual-machine:~# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

從上面的命令可以看到,使用run命令運行了一個容器,但退出之後容器也關閉了,這不是想要的結果。這時可以使用選項d讓容器一直在後台運行:

root@jaking-virtual-machine:~# docker run -d -i -t ubuntu /bin/bashb19cc95aef9cb6f402062915b527864cf045debc65dbabd23a495cea32a138ddroot@jaking-virtual-machine:~# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb19cc95aef9cubuntu"/bin/bash"15seconds ago Up14seconds kind_johnson05559b460591ubuntu"/bin/bash"35minutes ago Exited ()9minutes ago xenodochial_hypatia5bc78fd29b2a ubuntu-upstart"/bin/echo Hello Doc…"42minutes ago Exited ()42minutes ago silly_jenningsc54bb6d664b7ubuntu-upstart"/bin/echo Hello Doc…"44minutes ago Exited ()44minutes ago jolly_thompson

從上面的命令輸出可以看到一個ID為b19cc95aef9c的容器正在運行,這個ID號就是操作此容器的重要參數。

容器運行在後台時,可以使用attach登錄正在運行的容器:

root@jaking-virtual-machine:~# docker attach b19cc95aef9croot@b19cc95aef9c:/# exitexitroot@jaking-virtual-machine:~#

容器的操作還有很多命令,常用的操作還有:

dockercp :將容器中的文件複製到主機上dockerrm:刪除一個容器dockerport:配置容器的埠轉發dockerstart:啟動一個容器dockerstop:停止一個容器dockertop:顯示容器中的進程dockerps:列出容器dockerlogs:獲取容器的日誌除了以上這些操作外,Docker還有許多操作,可自行閱讀相關文檔了解。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux資訊速推 的精彩文章:

掛載錯誤導致系統無法啟動的解決方法

TAG:Linux資訊速推 |