柚子快報激活碼778899分享:Docker常用命令
柚子快報激活碼778899分享:Docker常用命令
Docker學習筆記
概述資源網(wǎng)站Docker架構(gòu)Docker安裝
常用指令指令學習思路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官方教程,對于每個指令有詳細的指導教程
官方教程:https://docs.docker.com/指令手冊:https://docs.docker.com/reference/ 官方倉庫 Docker Hub:Docker倉庫,類似于Github,可在其中找到需要的鏡像
https://hub.docker.com/
Docker的學習推薦在工程中使用時邊學邊用,通過多次使用就可以熟練掌握基礎(chǔ)的流程。
Docker架構(gòu)
鏡像(Image):鏡像為一個只讀模板,可用于創(chuàng)建Docker容器容器(Container):容器是鏡像的實例化,可被啟動、停止
Docker安裝
此處博主直接采用魚香ROS的一鍵安裝腳本進行:魚香ROS官方教程
wget http://fishros.com/install -O fishros && . fishros
使用上述指令進入安裝程序并按照提示進行即可。
常用指令
指令學習思路
對于任意指令,學習的方式如下:
使用參數(shù)--help查看參數(shù)說明使用官方Doc文檔查閱指令說明實際上手測試指令效果
常用需掌握的指令主要包括如下命令:
Engine指令
docker version # 顯示Docker版本信息
docker info # 顯示Docker系統(tǒng)信息
docker --help # 幫助手冊
Images指令
docker images
用于按規(guī)定展示對應(yīng)的鏡像信息,指令用法如下:
docker images [OPTIONS] [REPOSITORY[:TAG]] # 羅列本地鏡像
常用[OPTIONS]:
-a, --all # 顯示所有鏡像
-f, --filter # 過濾符合條件的鏡像(--filter "SIZE=100",過濾出大小高于100的鏡像)
-q, --auiet # 僅顯示鏡像ID
也可指定顯示鏡像的[REPOSITORY[:TAG]],從而顯示對應(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:鏡像倉庫名TAG:鏡像標簽(類似于Github中的分支Tag)IMAGE ID:鏡像ID,用于標識本地鏡像CREATED:鏡像創(chuàng)建時間SIZE:鏡像大小
更多用法可參考官方手冊:docker images指令
docker rmi
用于刪除一個或多個鏡像,指令用法如下:
docker rmi [OPTIONS] IMAGE [IMAGE...]
常用[OPTIONS]:
-f, --force # 強制刪除
刪除鏡像可以使用[REPOSITORY[:TAG]]或者IMAGE ID進行:
$ 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
更多用法可參考官方手冊:docker rmi指令
Registry指令
docker search
用于搜索dockerhub中是否存在對應(yīng)的鏡像包,指令用法如下:
docker search [OPTIONS] TERM
常用[OPTIONS]:
-f, --filter # 過濾器
使用效果如下:
$ 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
更多用法可參考官方手冊:docker search指令
docker pull
用于從倉庫中下載指定的鏡像,指令用法如下:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
常用[OPTIONS]:
-a, --all # 拉取所有鏡像
NAME[:TAG|@DIGEST]表示為需要下載的對應(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
更多用法可參考官方手冊:docker pull指令
Container指令
docker run
用于創(chuàng)建一個容器并運行它,指令用法如下:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用[OPTIONS]:
-d, --detach # 后臺運行容器并返回容器ID
-i # 交互模式運行,通常和-t一起使用(-it)
-t # 重新分配終端,通常和-i一起使用(-it)
-p # 指定容器的端口映射,通常使用hostPort:containerPort進行描述(8080:8080)
--name # 指定容器的名字
如下構(gòu)建了一個名為test的容器,并使用交互方式啟動:
$ docker run --name test -it debian
root@d6c0fe130dba:/# exit
更多用法可參考官方手冊:docker run指令
docker ps
用于顯示創(chuàng)建的容器,指令用法如下:
docker ps [OPTIONS]
常用[OPTIONS]:
-a, --all # 展示所有容器而非默認的僅顯示運行中的容器
-f, --filter # 過濾器
-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
更多用法可參考官方手冊:docker ps指令
docker start、docker restart、docker stop、docker kill
指令用法如下:
docker start [OPTIONS] CONTAINER [CONTAINER...] # 啟動容器
docker restart [OPTIONS] CONTAINER [CONTAINER...] # 重啟容器
docker stop [OPTIONS] CONTAINER [CONTAINER...] # 停止容器
docker kill [OPTIONS] CONTAINER [CONTAINER...] # 停止容器
可使用Name或CONTAINER ID啟動容器,退出容器可以鍵入exit進行退出,此時容器將被關(guān)閉。也可以使用鍵盤按鍵Ctrl+P+Q進行退出,此時容器將在后臺持續(xù)運行。
更多用法可參考官方手冊:docker start指令、docker restart指令、docker stop指令、docker kill指令
docker rm
用于刪除容器,指令用法如下:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
常用[OPTIONS]:
-f, --force # 強制刪除
更多用法可參考官方手冊:docker rm指令
docker exec和docker attach
用于進入后臺運行中的容器,不同的是docker exec指令將重新開啟一個新進程進入容器,docker attach則繼續(xù)在現(xiàn)有進程中進入容器:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
常用[OPTIONS]:
-d, --detach # 后臺運行
-it # 新建交互終端
docker attach CONTAINER
應(yīng)注意,由于docker attach直接進入容器現(xiàn)有進程,在使用exit退出時容器將直接stop(若后臺無運行)。而exec則新開一個進程,在使用exit退出時容器僅關(guān)閉當前進程。
更多用法可參考官方手冊:docker exec指令、docker attach指令
docker logs和docker top
docker logs用于獲取到容器的日志信息,docker top則獲取容器的進程情況:
docker logs [OPTIONS] CONTAINER
常用[OPTIONS]:
--until # 獲取多少時間內(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
更多用法可參考官方手冊:docker logs指令、docker top指令
Host指令
docker cp
用于將容器內(nèi)的數(shù)據(jù)復制到主機上,或者將主機上的數(shù)據(jù)復制至容器內(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
更多用法可參考官方手冊:docker cp指令
柚子快報激活碼778899分享:Docker常用命令
推薦鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。