溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何安裝和使用Docker

發(fā)布時(shí)間:2021-10-14 14:16:08 來源:億速云 閱讀:111 作者:iii 欄目:編程語言

這篇文章主要講解了“如何安裝和使用Docker”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何安裝和使用Docker”吧!

如何安裝

docker的安裝非常簡單。

windows或者mac用戶:

下載安裝包進(jìn)行安裝。 Docker Desktop for Mac (macOS) Docker Desktop for Windows

linux用戶(以u(píng)buntu為例):

有三種方式(根據(jù)自身網(wǎng)絡(luò)情·況任選一種):

  • 使用源進(jìn)行安裝(需要提前設(shè)置好源環(huán)境)

 $ sudo apt-get install docker-ce docker-ce-cli containerd.io
  • 下載離線包進(jìn)行安裝(https://download.docker.com/linux/ubuntu/dists/)

$ sudo dpkg -i /path/to/package.deb
  • 使用在線腳本安裝

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

基本使用

所有的docker命令,都先以docker起頭,然后空格并跟上子命令執(zhí)行相應(yīng)的操作。 詳細(xì)的命令行文檔參見官網(wǎng):https://docs.docker.com/engine/reference/commandline/cli/

啟動(dòng)一個(gè)容器

run 表示啟動(dòng),并需要指定一個(gè)鏡像文件,docker以該鏡像文件作為模版啟動(dòng)一個(gè)容器。

$ docker run -d -p 80:80 docker/getting-started
  • -d 表示后臺(tái)運(yùn)行

  • -p 80:80 表示端口映射 將本地80端口,映射到容器的80端口

  • docker/getting-started 使用的鏡像文件(此鏡像是官網(wǎng)提供的教程鏡像,啟動(dòng)后可以在瀏覽器中打開 http://localhost/tutorial/ 進(jìn)入docker新手教程)

查看運(yùn)行中的容器

ps 查看運(yùn)行中的容器,每個(gè)運(yùn)行的容器都會(huì)有一個(gè)containerId,類似linux的ps命令返回的pid。

$ docker ps -a
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS         PORTS                NAMES
8234ab6bc530   docker/getting-started   "/docker-entrypoint.…"   11 seconds ago   Up 9 seconds   0.0.0.0:80->80/tcp   hopeful_hamilton
  • -a 表示all, 查看所有,包括已經(jīng)停止的

停止一個(gè)容器

stop 停止一個(gè)容器,需要一個(gè)containerId指明停止哪個(gè)容器。并且stop命令是冪等的,可以認(rèn)為該命令告訴docker引擎,保持指定的容器處于停止?fàn)顟B(tài)。

$ docker stop 8234ab6bc530

此時(shí)再使用ps查看容器會(huì)發(fā)現(xiàn)該容器已經(jīng)停止,可以看到該容器的status為Exited (0)。

$ docker ps -af 'id=8234ab6bc530'
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS                     PORTS     NAMES
8234ab6bc530   docker/getting-started   "/docker-entrypoint.…"   19 minutes ago   Exited (0) 3 minutes ago             hopeful_hamilton
  • -af 是 -a(--all)表示所有 和 -f(--filter)表示按條件過濾的組合,'id=8234ab6bc530'是-f的參數(shù),表示只要id為8234ab6bc530的容器。

啟動(dòng)一個(gè)已停止的容器

start 可以啟動(dòng)一個(gè)已停止的容器,需要一個(gè)containerId指明具體容器。和stop命令一樣start命令也是冪等的,可以認(rèn)為該命令告訴docker引擎,保持指定的容器處于啟動(dòng)狀態(tài)。

$ docker start 8234ab6bc530
8234ab6bc530
刪除一個(gè)容器

rm 用于刪除一個(gè)指定的容器,但是不允許刪除一個(gè)運(yùn)行中的容器。

$ docker rm 8234ab6bc530
Error response from daemon: You cannot remove a running container 8234ab6bc530fa180da8a42b4c232761f604913c0adde06868dcd63bda841b37. Stop the container before attempting removal or force remove

所以需要先停止,再刪除

$ docker stop 8234ab6bc530
8234ab6bc530
$ docker rm 8234ab6bc530
8234ab6bc530
附錄A 常用命令說明
  • docker run : 創(chuàng)建一個(gè)新的容器并運(yùn)行一個(gè)命令 參數(shù):

-a stdin: 指定標(biāo)準(zhǔn)輸入輸出內(nèi)容類型,可選 STDIN/STDOUT/STDERR 三項(xiàng);

-d: 后臺(tái)運(yùn)行容器,并返回容器ID;

-i: 以交互模式運(yùn)行容器,通常與 -t 同時(shí)使用;

-P: 隨機(jī)端口映射,容器內(nèi)部端口隨機(jī)映射到主機(jī)的端口

-p: 指定端口映射,格式為:主機(jī)(宿主)端口:容器端口

-t: 為容器重新分配一個(gè)偽輸入終端,通常與 -i 同時(shí)使用;

--name="nginx-lb": 為容器指定一個(gè)名稱;

--dns 8.8.8.8: 指定容器使用的DNS服務(wù)器,默認(rèn)和宿主一致;

--dns-search example.com: 指定容器DNS搜索域名,默認(rèn)和宿主一致;

-h "mars": 指定容器的hostname;

-e username="ritchie": 設(shè)置環(huán)境變量;

--env-file=[]: 從指定文件讀入環(huán)境變量;

--cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運(yùn)行;

-m :設(shè)置容器使用內(nèi)存最大值;

--net="bridge": 指定容器的網(wǎng)絡(luò)連接類型,支持 bridge/host/none/container: 四種類型;

--link=[]: 添加鏈接到另一個(gè)容器;

--expose=[]: 開放一個(gè)端口或一組端口;

--volume , -v: 綁定一個(gè)卷
  • docker exec : 在運(yùn)行的容器中執(zhí)行命令 參數(shù):

-d :分離模式: 在后臺(tái)運(yùn)行

-i :即使沒有附加也保持STDIN 打開

-t :分配一個(gè)偽終端
  • docker cp : 用于容器與主機(jī)之間的數(shù)據(jù)拷貝。 參數(shù):

-L :保持源目標(biāo)中的鏈接
  • docker logs : 獲取容器的日志 參數(shù):

-f : 跟蹤日志輸出

--since :顯示某個(gè)開始時(shí)間的所有日志

-t : 顯示時(shí)間戳

--tail :僅列出最新N條容器日志
  • docker build : 用于使用 Dockerfile 創(chuàng)建鏡像

--build-arg=[] :設(shè)置鏡像創(chuàng)建時(shí)的變量;

--cpu-shares :設(shè)置 cpu 使用權(quán)重;

--cpu-period :限制 CPU CFS周期;

--cpu-quota :限制 CPU CFS配額;

--cpuset-cpus :指定使用的CPU id;

--cpuset-mems :指定使用的內(nèi)存 id;

--disable-content-trust :忽略校驗(yàn),默認(rèn)開啟;

-f :指定要使用的Dockerfile路徑;

--force-rm :設(shè)置鏡像過程中刪除中間容器;

--isolation :使用容器隔離技術(shù);

--label=[] :設(shè)置鏡像使用的元數(shù)據(jù);

-m :設(shè)置內(nèi)存最大值;

--memory-swap :設(shè)置Swap的最大值為內(nèi)存+swap,"-1"表示不限swap;

--no-cache :創(chuàng)建鏡像的過程不使用緩存;

--pull :嘗試去更新鏡像的新版本;

--quiet, -q :安靜模式,成功后只輸出鏡像 ID;

--rm :設(shè)置鏡像成功后刪除中間容器;

--shm-size :設(shè)置/dev/shm的大小,默認(rèn)值是64M;

--ulimit :Ulimit配置。

--squash :將 Dockerfile 中所有的操作壓縮為一層。

--tag, -t: 鏡像的名字及標(biāo)簽,通常 name:tag 或者 name 格式;可以在一次構(gòu)建中為一個(gè)鏡像設(shè)置多個(gè)標(biāo)簽。

--network: 默認(rèn) default。在構(gòu)建期間設(shè)置RUN指令的網(wǎng)絡(luò)模式

感謝各位的閱讀,以上就是“如何安裝和使用Docker”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)如何安裝和使用Docker這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI