導航:首頁 > 程序命令 > 容器構建啟動命令

容器構建啟動命令

發布時間:2023-03-10 05:39:23

『壹』 如何打包創建鏡像和運行Docker容器及常用命

在Dockerfile所在目錄執行
docker build -t 10.10.36.213/library/你的鏡像名:版本 .
別忘了最後的點,用來指定Dockerfile的位置
build過程類似這樣:
cos@controller ~/Dockerfile/eureka $ docker build -t 10.10.36.213/library/test:v1.0 .
Sending build context to Docker daemon 78.69 MB
Step 1 : FROM 192.168.16.100/jdk8:8u74
---> d84b155276a9
Step 2 : MAINTAINER jingchaosong [email protected]
---> Using cache
---> 369126ee2c40
Step 3 : ADD eureka-server-1.1-SNAPSHOT.jar /root/
---> Using cache
---> cd3facb762b3
Successfully built cd3facb762b3
push鏡像
docker push 10.10.36.213/library/你的鏡像名:版本
如果出現push失敗的情況,並且提示需要的登錄,請使用以下命令login到私有鏡像倉庫
docker login 10.10.36.213
用戶名admin
密碼Harbor12345
email可以不填
run容器
直接以daemon方式運行
docker run -d --net=mynet 10.10.36.213/library/你的鏡像名:版本 命令
--net=mynet是讓docker調用我們自己的網路插件來分配IP地址,IP地址從我們自己配置的IP池裡獲取
查看啟動的容器的IP地址可以用以下命令
docker inspect container_id | grep IPAddress
交互方式運行
docker run -it --net=mynet 10.10.36.213/library/你的鏡像名:版本
docker run的時候可以加很多參數,如容器的資源配額限制、hostname、掛載本地目錄、DNS等配置,請參看docker run --help
查看容器狀態
查看正在運行的容器的狀態
docker ps
查看所有容器(包括已經Exit容器的狀態)
docker ps -a
刪除容器
docker rm container_id
container_id只需要前幾位字元就可以了,只要能夠區別不同容器即可,不需要輸入全部ID欄位
強制刪除容器
docker rm -f container_id
刪除鏡像
docker rmi image_id
進入容器內部
前提是必須是正在運行的容器
docker exec -it container_id /bin/bash
運行exit退出
查看容器詳細信息
docker inspect container_id
可以看到容器的配置信息和掛載的本地目錄、網路配置、狀態等

『貳』 Docker實踐之鏡像啟動及常用命令

前面簡單的介紹了如何在linux中安裝 Docker ,這節內容,我們學習Docker鏡像啟動

我們Docker啟動鏡像從哪裡來呢?鏡像由我們自己或者他人構建,構建好的鏡像可以直接放在本地或者上傳到遠程鏡像倉庫。當我們運行一個Docker鏡像時,會先在本地查找是否存在所要運行的鏡像,如果沒有則會去遠程鏡像倉庫拉取,默認為官方的鏡像倉庫,當然,我們也可以改為自己的私有鏡像倉庫。接下來,我們先了解幾個簡單的命令。

我們直接在安裝好Docker的主機上執行 docker run nginx

我們從運行日誌可以看到這樣的字眼:

docker發現本地不存在nginx的鏡像文件,便直接去倉庫中查找下載並運行,因為我們沒有讓鏡像後台運行,所以這次運行起來的容器會隨著這次遠程連接斷開而停止。當我按下 ctrl+c 時,容器便會停止

如果要讓容器後台運行,則需要在啟動時加 -d 這個參數,

我們來看一下當前運行中的容器

可以看到,我們的nginx是啟動起來了,但是,我們並不能訪問它。容器有自己的一套虛擬系統,如:網路、文件。如果我們需要訪問,則需要給容器和宿主機做一個映射,讓宿主機和容器能夠交互。這里,我們就給nginx增加埠和配置文件映射。我為了省事,就直接把容器中的配置文件復制出來用

接下來,我們便來建立這個映射關系

來看看容器是否啟動成功

這時候,我們便能訪問我們的nginx服務,

前面已經說到,容器有自己的虛擬系統,如果需要持久化的數據不映射到宿主機上,那麼當容器銷毀時,數據也會隨之丟失,所以,我們在用容器運行時,一定要做好數據的保存方式。

在前面,我們列出了幾個常用的Docker命令,這里,我們把這幾個常用命令稍微講解一下,

ps主要是查詢正常運行的容器
docker ps 是當前正在運行的容器

這裡面的 CONTAINER ID 很重要,後面我們的很多操作都需要基於這個 CONTAINER ID 或者 NAMES 。
docker ps -a 則是列出運行中和停止中的所有容器,

這幾個參數這是啟動/停止/重啟/刪除容器的參數,如: docker restart 5ae0319e1795 ,如果要刪除容器,必須要先停止,否則會提示

docker run [OPTIONS] IMAGE [COMMAND] [ARG…],它的運行參數就比較復雜了,

這里還是只介紹幾個常用的命令參數吧,

運行示例 docker run -d --name nginx-cc -v /root/nginx/:/etc/nginx/ -p 9999:80 -m 256M nginx

cp命令主要是用於宿主機和容器間的文件復制,一般格式如下:
docker cp [OPTIONS] 容器名/容器Id:容器文件路徑 宿主機文件路徑 從容器復制到宿主機
docker cp [OPTIONS] 宿主機文件路徑 容器名/容器Id:容器文件路徑 從宿主機復制到容器中

inspect主要是查看容器或者鏡像元數據,如:

從返回的信息中,我們可以得到,啟動時所設置的啟動參數。如:

如果,那天我們忘記之前容器啟動的參數時,便可以通過 inspect 來幫我們找回來。

logs主要是查詢docker容器的運行日誌,如:

『叄』 Docker命令全集

一:首先來理解三個名詞解釋:

1、鏡像(image)
Docker 鏡像(Image)就是一個只讀的模板。

例如:一個鏡像可以包含一個完整的操作系統環境,裡面僅安裝了 Apache 或用戶需要的其它應用程序。鏡像可以用來創建 Docker 容器,一個鏡像可以創建很多容器。

2、倉庫(repository)
倉庫(Repository)是集中存放鏡像文件的場所。

3、容器(container)
Docker 利用容器(Container)來運行應用。容器是從鏡像(Image)創建的運行實例。


二:常用的命令集合如下:

容器生命周期管理 — docker
[run|start|stop|restart|kill|rm|pause|unpause|create]


容器操作運維 — docker
[ps|exec|inspect|top|attach|events|logs|wait|export|import|port]


容器rootfs命令 — docker
[commit|cp|diff]


本地鏡像管理 — docker
[images|rmi|tag|build|history|save]


鏡像倉庫 — docker
[login|pull|push|search]


其他命令 — docker
[info|version]


詳細命令說明如下:

docker run -d --name alias-Name imageName //在後台啟動一個容器
docker start Name/ID //啟動容器
docker stop Name/ID //停止容器
docker restart Name/ID //重啟容器
docker kill -s KILL Name/ID //殺死一個運行的容器
docker rm /rm -f Name/ID //刪除容器
docker pause Name/ID //停止容器
docker unpause Name/ID //恢復容器
docker create --name CONTAINER_Name imageName //只創建容器但不啟動

docker ps / docker ps -a //查看運行的容器
docker exec -it CONTAINER_ID /bin/bash //進行一個運行中的容器,開啟一個新的終端
docker attach CONTAINER_ID //進行一個運行中的容器,不開啟一個新的終端
docker inspect CONTAINER_Name //查看容器的相關信息
docker top CONTAINER_Name //查看容器裡面的進程
docker events -f "image"="imageName" --since="1467302400" //時間戳=2016年7月1日後的相關事件
docker logs CONTAINER_Name //查看容器的日誌輸出
docker wait CONTAINER_Name //阻塞運行直到容器停止,然後列印出它的退出代碼
docker export -o test.tar CONTAINER_ID //將容器進行打包保存到本地,文件類型為tar
cat test.tar |docker import - image_name:tag //將上面保存的文件導入到鏡像庫中
docker port CONTAINER_ID //查看容器的埠映射情況

commit 從容器中創建一個新的鏡像
docker commit -a "tony test" -m "my mysql" CONTAINER_ID mymysql:v1
docker images mymysql:v1
cp 在使用的過程中會進行多個主機與容器之間的數據交換
docker cp /ruiqi/content CONTAINER_ID:/ruiqi/
diff 用來檢查容器裡面文件結構的更改
docker diff CONTAINER_ID


docker images /docker images -a //查看本地的鏡像,-a 表示是所有的鏡像
docker rmi -f image_name //刪除鏡像
docker tag mysql:v5.6 mysql:v5.7 //給鏡像做一個有別名的復本
docker build -t runoob/ubuntu:v1 . //構建一個鏡像
docker history image_name //查看當前這個鏡像的 歷史 信息
docker save -o TestFlask.tar TestFlask:v3 //將當前的鏡像保存到本地的一個tar 類型的文件


docker login //登錄鏡像倉庫

docker pull //從鏡像倉庫中拉鏡像

docker push //向鏡像倉庫推本地的鏡像文件

docker search //檢索鏡像內容


三:利用dockerfile 製作一個tomcat 運行image:

[root@localhost common]# more Dockerfile.tomcat
FROM cloud.io/centos:7
COPY jdk-8u144-linux-x64.rpm /opt/jdk-8u144-linux-x64.rpm
RUN ["rpm","-ivh","/opt/jdk-8u144-linux-x64.rpm"]
COPY security /usr/java/jdk1.8.0_144/jre/security
COPY certs /etc/pki/tls/certs
COPY tomcat /opt/tomcat
RUN ["ln","-s","/opt/tomcat","/usr/local/tomcat"]

『肆』 如何啟動一個已經創建的docker容器,並進入SHELL對其操作

有同學在docker下安裝了nginx 但是不知道目錄在哪,可以使用命令:
sudo find / -name "50x.html"

因為nginx里必定會有50x.html,所以查找它,結果發現nginx的目錄在docker容器里,如果操作它,就需要進入容器的shell。

必須先啟動容器:
sudo docker start 「容器ID」

然後使用下邊的命令進入shell:
sudo docker exec -it 「容器ID」 bash

將主機的文件復制到容器里:
sudo docker cp 主機目錄 容器ID:容器目錄

閱讀全文

與容器構建啟動命令相關的資料

熱點內容
安卓手機mp3壓縮工具 瀏覽:214
程序員和交易員 瀏覽:422
怎麼變字體樣式app 瀏覽:173
名字叫湯什麼的視頻app 瀏覽:209
金屬加密鍵盤聯系電話 瀏覽:335
自製解壓牛奶盒子教程 瀏覽:64
編譯高手的圖片 瀏覽:922
單片機數碼管顯示時分秒 瀏覽:780
手指解壓最簡單的方法 瀏覽:345
韓國郵箱伺服器地址 瀏覽:967
android版本介紹 瀏覽:410
pdf文件加密軟體 瀏覽:410
長沙住房app怎麼看備案 瀏覽:603
安裝加密軟體的電腦會被監控么 瀏覽:221
java微博源碼 瀏覽:569
堆排序簡單實現python 瀏覽:461
單片機引腳與鍵盤的關系 瀏覽:132
壓縮火柴盒製作 瀏覽:38
谷歌地圖android偏移 瀏覽:214
bitlocker硬碟加密空間 瀏覽:238