柚子快報(bào)激活碼778899分享:Docker常用命令
柚子快報(bào)激活碼778899分享:Docker常用命令
Docker學(xué)習(xí)筆記
概述資源網(wǎng)站Docker架構(gòu)Docker安裝
常用指令指令學(xué)習(xí)思路Engine指令I(lǐng)mages指令docker imagesdocker rmi
Registry指令docker searchdocker pull
Container指令docker rundocker psdocker start、docker restart、docker stop、docker killdocker rmdocker exec和docker attachdocker logs和docker top
Host指令docker cp
概述
資源網(wǎng)站
官方文檔 Docker DOC:Docker官方教程,對(duì)于每個(gè)指令有詳細(xì)的指導(dǎo)教程
官方教程:https://docs.docker.com/指令手冊(cè):https://docs.docker.com/reference/ 官方倉(cāng)庫(kù) Docker Hub:Docker倉(cāng)庫(kù),類似于Github,可在其中找到需要的鏡像
https://hub.docker.com/
Docker的學(xué)習(xí)推薦在工程中使用時(shí)邊學(xué)邊用,通過(guò)多次使用就可以熟練掌握基礎(chǔ)的流程。
Docker架構(gòu)
鏡像(Image):鏡像為一個(gè)只讀模板,可用于創(chuàng)建Docker容器容器(Container):容器是鏡像的實(shí)例化,可被啟動(dòng)、停止
Docker安裝
此處博主直接采用魚(yú)香ROS的一鍵安裝腳本進(jìn)行:魚(yú)香ROS官方教程
wget http://fishros.com/install -O fishros && . fishros
使用上述指令進(jìn)入安裝程序并按照提示進(jìn)行即可。
常用指令
指令學(xué)習(xí)思路
對(duì)于任意指令,學(xué)習(xí)的方式如下:
使用參數(shù)--help查看參數(shù)說(shuō)明使用官方Doc文檔查閱指令說(shuō)明實(shí)際上手測(cè)試指令效果
常用需掌握的指令主要包括如下命令:
Engine指令
docker version # 顯示Docker版本信息
docker info # 顯示Docker系統(tǒng)信息
docker --help # 幫助手冊(cè)
Images指令
docker images
用于按規(guī)定展示對(duì)應(yīng)的鏡像信息,指令用法如下:
docker images [OPTIONS] [REPOSITORY[:TAG]] # 羅列本地鏡像
常用[OPTIONS]:
-a, --all # 顯示所有鏡像
-f, --filter # 過(guò)濾符合條件的鏡像(--filter "SIZE=100",過(guò)濾出大小高于100的鏡像)
-q, --auiet # 僅顯示鏡像ID
也可指定顯示鏡像的[REPOSITORY[:TAG]],從而顯示對(duì)應(yīng)鏡像,展現(xiàn)所有鏡像如下:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
committ latest b6fa739cedf5 19 hours ago 1.089 GB
postgres 9 746b819f315e 4 days ago 213.4 MB
postgres 9.3 746b819f315e 4 days ago 213.4 MB
展示信息如下:
REPOSITORY:鏡像倉(cāng)庫(kù)名TAG:鏡像標(biāo)簽(類似于Github中的分支Tag)IMAGE ID:鏡像ID,用于標(biāo)識(shí)本地鏡像CREATED:鏡像創(chuàng)建時(shí)間SIZE:鏡像大小
更多用法可參考官方手冊(cè):docker images指令
docker rmi
用于刪除一個(gè)或多個(gè)鏡像,指令用法如下:
docker rmi [OPTIONS] IMAGE [IMAGE...]
常用[OPTIONS]:
-f, --force # 強(qiáng)制刪除
刪除鏡像可以使用[REPOSITORY[:TAG]]或者IMAGE ID進(jìn)行:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test1 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
$ docker rmi fd484f19954f
Untagged: test1:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
# 或者使用如下指令
$ docker rmi test1:latest
更多用法可參考官方手冊(cè):docker rmi指令
Registry指令
docker search
用于搜索dockerhub中是否存在對(duì)應(yīng)的鏡像包,指令用法如下:
docker search [OPTIONS] TERM
常用[OPTIONS]:
-f, --filter # 過(guò)濾器
使用效果如下:
$ docker search busybox
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
busybox Busybox base image. 316 [OK]
progrium/busybox 50 [OK]
radial/busyboxplus Full-chain, Internet enabled, busybox made... 8 [OK]
odise/busybox-python 2 [OK]
azukiapp/busybox This image is meant to be used as the base... 2 [OK]
ofayau/busybox-jvm Prepare busybox to install a 32 bits JVM. 1 [OK]
shingonoide/archlinux-busybox Arch Linux, a lightweight and flexible Lin... 1 [OK]
odise/busybox-curl 1 [OK]
ofayau/busybox-libc32 Busybox with 32 bits (and 64 bits) libs 1 [OK]
peelsky/zulu-openjdk-busybox 1 [OK]
skomma/busybox-data Docker image suitable for data volume cont... 1 [OK]
elektritter/busybox-teamspeak Lightweight teamspeak3 container based on... 1 [OK]
socketplane/busybox 1 [OK]
oveits/docker-nginx-busybox This is a tiny NginX docker image based on... 0 [OK]
ggtools/busybox-ubuntu Busybox ubuntu version with extra goodies 0 [OK]
nikfoundas/busybox-confd Minimal busybox based distribution of confd 0 [OK]
openshift/busybox-http-app 0 [OK]
jllopis/busybox 0 [OK]
swyckoff/busybox 0 [OK]
powellquiring/busybox 0 [OK]
williamyeh/busybox-sh Docker image for BusyBox's sh 0 [OK]
simplexsys/busybox-cli-powered Docker busybox images, with a few often us... 0 [OK]
fhisamoto/busybox-java Busybox java 0 [OK]
scottabernethy/busybox 0 [OK]
marclop/busybox-solr
更多用法可參考官方手冊(cè):docker search指令
docker pull
用于從倉(cāng)庫(kù)中下載指定的鏡像,指令用法如下:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
常用[OPTIONS]:
-a, --all # 拉取所有鏡像
NAME[:TAG|@DIGEST]表示為需要下載的對(duì)應(yīng)TAG的鏡像,若不指定TAG則表示下載最新版本(latest):
$ docker pull debian
Using default tag: latest
latest: Pulling from library/debian
e756f3fdd6a3: Pull complete
Digest: sha256:3f1d6c17773a45c97bd8f158d665c9709d7b29ed7917ac934086ad96f92e4510
Status: Downloaded newer image for debian:latest
docker.io/library/debian:latest
$ docker pull debian:bullseye
bullseye: Pulling from library/debian
Digest: sha256:3f1d6c17773a45c97bd8f158d665c9709d7b29ed7917ac934086ad96f92e4510
Status: Downloaded newer image for debian:bullseye
docker.io/library/debian:bullseye
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
debian bullseye 4eacea30377a 8 days ago 124MB
debian latest 4eacea30377a 8 days ago 124MB
更多用法可參考官方手冊(cè):docker pull指令
Container指令
docker run
用于創(chuàng)建一個(gè)容器并運(yùn)行它,指令用法如下:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用[OPTIONS]:
-d, --detach # 后臺(tái)運(yùn)行容器并返回容器ID
-i # 交互模式運(yùn)行,通常和-t一起使用(-it)
-t # 重新分配終端,通常和-i一起使用(-it)
-p # 指定容器的端口映射,通常使用hostPort:containerPort進(jìn)行描述(8080:8080)
--name # 指定容器的名字
如下構(gòu)建了一個(gè)名為test的容器,并使用交互方式啟動(dòng):
$ docker run --name test -it debian
root@d6c0fe130dba:/# exit
更多用法可參考官方手冊(cè):docker run指令
docker ps
用于顯示創(chuàng)建的容器,指令用法如下:
docker ps [OPTIONS]
常用[OPTIONS]:
-a, --all # 展示所有容器而非默認(rèn)的僅顯示運(yùn)行中的容器
-f, --filter # 過(guò)濾器
-q, --quiet # 僅顯示容器ID
顯示如下:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c01db0b339c ubuntu:22.04 bash 17 seconds ago Up 16 seconds 3300-3310/tcp webapp
d7886598dbe2 crosbymichael/redis:latest /redis-server --dir 33 minutes ago Up 33 minutes 6379/tcp redis,webapp/db
更多用法可參考官方手冊(cè):docker ps指令
docker start、docker restart、docker stop、docker kill
指令用法如下:
docker start [OPTIONS] CONTAINER [CONTAINER...] # 啟動(dòng)容器
docker restart [OPTIONS] CONTAINER [CONTAINER...] # 重啟容器
docker stop [OPTIONS] CONTAINER [CONTAINER...] # 停止容器
docker kill [OPTIONS] CONTAINER [CONTAINER...] # 停止容器
可使用Name或CONTAINER ID啟動(dòng)容器,退出容器可以鍵入exit進(jìn)行退出,此時(shí)容器將被關(guān)閉。也可以使用鍵盤(pán)按鍵Ctrl+P+Q進(jìn)行退出,此時(shí)容器將在后臺(tái)持續(xù)運(yùn)行。
更多用法可參考官方手冊(cè):docker start指令、docker restart指令、docker stop指令、docker kill指令
docker rm
用于刪除容器,指令用法如下:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
常用[OPTIONS]:
-f, --force # 強(qiáng)制刪除
更多用法可參考官方手冊(cè):docker rm指令
docker exec和docker attach
用于進(jìn)入后臺(tái)運(yùn)行中的容器,不同的是docker exec指令將重新開(kāi)啟一個(gè)新進(jìn)程進(jìn)入容器,docker attach則繼續(xù)在現(xiàn)有進(jìn)程中進(jìn)入容器:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
常用[OPTIONS]:
-d, --detach # 后臺(tái)運(yùn)行
-it # 新建交互終端
docker attach CONTAINER
應(yīng)注意,由于docker attach直接進(jìn)入容器現(xiàn)有進(jìn)程,在使用exit退出時(shí)容器將直接stop(若后臺(tái)無(wú)運(yùn)行)。而exec則新開(kāi)一個(gè)進(jìn)程,在使用exit退出時(shí)容器僅關(guān)閉當(dāng)前進(jìn)程。
更多用法可參考官方手冊(cè):docker exec指令、docker attach指令
docker logs和docker top
docker logs用于獲取到容器的日志信息,docker top則獲取容器的進(jìn)程情況:
docker logs [OPTIONS] CONTAINER
常用[OPTIONS]:
--until # 獲取多少時(shí)間內(nèi)的日志輸出
--tail # 后加數(shù)字表示顯示多少條日志輸出
docker top CONTAINER [ps OPTIONS]
示例如下:
$ docker run --name test -d busybox sh -c "while true; do $(echo date); sleep 1; done"
$ date
Tue 14 Nov 2017 16:40:00 CET
$ docker logs -f --until=2s test
Tue 14 Nov 2017 16:40:00 CET
Tue 14 Nov 2017 16:40:01 CET
Tue 14 Nov 2017 16:40:02 CET
$ docker top c8530dbbe3b4
UID PID PPID C STIME TTY TIME CMD
root 27437 27421 0 16:43 ? 00:00:00 /bin/sh -c
更多用法可參考官方手冊(cè):docker logs指令、docker top指令
Host指令
docker cp
用于將容器內(nèi)的數(shù)據(jù)復(fù)制到主機(jī)上,或者將主機(jī)上的數(shù)據(jù)復(fù)制至容器內(nèi),類似于scp:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
使用示例如下:
# 將本地文件上傳容器
docker cp ./some_file CONTAINER:/work
# 將容器文件下載本地
docker cp CONTAINER:/var/logs/ /tmp/app_logs
更多用法可參考官方手冊(cè):docker cp指令
柚子快報(bào)激活碼778899分享:Docker常用命令
推薦鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。