一、鏡像命令
在docker基礎(chǔ):命令詳解(二)中已經(jīng)介紹了如何登錄dockerhub及私服,下面進(jìn)行鏡像的命令的學(xué)習(xí)。
1、鏡像
先說一下鏡像和容器的關(guān)系,鏡像類似于一個(gè)母板,在公網(wǎng)中進(jìn)行拉取創(chuàng)建。容器相當(dāng)于母板復(fù)制出來的產(chǎn)品,每個(gè)產(chǎn)品有不同的編號,端口號等。也就是說現(xiàn)有鏡像,再有容器。有人會問了,沒有鏡像,容器就不能運(yùn)行嗎?不是的。當(dāng)創(chuàng)建一個(gè)容器時(shí),如果沒有鏡像,那么就會根據(jù)你給的路徑自動去下載鏡像,然后生成容器,默認(rèn)是從共網(wǎng)上下載。
2、拉取鏡像:docker pull 鏡像名
拉取鏡像之前,先要明確自己需要什么鏡像,知道鏡像有哪些版本,我需要兩個(gè)鏡像,tomcat和mysql。
可以看到有很多鏡像,我在這里只是用官網(wǎng)鏡像


拉取tomcat鏡像:docker pull tomcat

拉取mysql鏡像:docker pull mysql

3、查看鏡像:docker images
能看到我已經(jīng)下載了兩個(gè)鏡像。

4、修改鏡像tag:docker tag 鏡像名/鏡像ID 自定義鏡像名:自定義tag名
docker tag tomcat tomcat-test:tomcat7 創(chuàng)建出一個(gè)新的tomcat鏡像 tag是自定義的

上面的圖片中,大家可能注意到了,有兩個(gè)id相同的鏡像,這樣就有問題了,刪除的時(shí)候怎么處理?
5、刪除鏡像:docker rmi 鏡像ID/鏡像名:tag名
-f 強(qiáng)制刪除,即使鏡像被占用。
刪除多個(gè)鏡像:docker rmi A B C

6、構(gòu)建鏡像:暫時(shí)不做。
7、構(gòu)建鏡像方式2:dockerfile文件構(gòu)建。
8、查看指定鏡像的歷史信息:docker history 鏡像id
9、將鏡像推送到遠(yuǎn)程倉庫,默認(rèn)是dockerhub:docker push 鏡像id
10、docker image 的命令:
build Build an image from a Dockerfile
構(gòu)建 構(gòu)建一個(gè)鏡像從一個(gè)dockerfile
history Show the history of an image
歷史 顯示鏡像的歷史。
import Import the contents from a tarball to create a filesystem image
導(dǎo)入 過壓縮包制作鏡像
inspect Display detailed information on one or more images
檢查 顯示一個(gè)或多個(gè)鏡像的詳細(xì)信息。
load Load an image from a tar archive or STDIN
加載 將一個(gè)鏡像save成壓縮包后,在用load命令加載成一個(gè)鏡像
例如:docker load -i/< /存放鏡像的路徑/鏡像.tar
ls List images
ls 列出鏡像
prune Remove unused images
刪除 刪除未使用的鏡像
pull Pull an image or a repository from a registry
從注冊表中拉出鏡像或存儲庫。
push Push an image or a repository to a registry
將鏡像或存儲庫推入注冊表
rm Remove one or more images
刪除 一個(gè)或多個(gè)圖像
save Save one or more images to a tar archive (streamed to STDOUT by default)
保存一個(gè)或多個(gè)圖像到一個(gè)tar歸檔文件(流到stdout默認(rèn)),可以指定到某個(gè)文件下
例如:docker save 鏡像名:tag -o /需要存放鏡像的路徑/定義一個(gè)名字.tar
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
標(biāo)簽創(chuàng)建一個(gè)標(biāo)簽target_image指source_image
二、容器命令
1、查看容器的命令: docker ps -a
-a, --all Show all containers (default shows just running)
- -所有顯示所有容器(默認(rèn)顯示剛剛運(yùn)行)
-f, --filter filter Filter output based on conditions provided
基于濾波器提供的濾波器濾波器輸出條件
--format string Pretty-print containers using a Go template
使用滾動模板格式化字符串漂亮的打印容器
--help Print usage
——幫助打印使用
-n, --last int Show n last created containers (includes all states) (default -1)
-最后一個(gè)int顯示上次創(chuàng)建的容器(包括所有狀態(tài))(默認(rèn)值1)
-l, --latest Show the latest created container (includes all states)
最新顯示的最新創(chuàng)建的容器(包括所有國家)
--no-trunc Don't truncate output
——NO TRUNC不截?cái)噍敵?br>
-q, --quiet Only display numeric IDs
只顯示容器ID
-s, --size Display total file sizes
大小 顯示總文件大小
2、最新創(chuàng)建的容器(最后啟動的):-l
只查看容器的id:-q
顯示容器的大小:-s
3、刪除容器:docker rm 容器id/容器名
批量刪除:docker rm 容器id/容器名 容器id/容器名 容器id/容器名
4、啟動已經(jīng)創(chuàng)建的容器:docker start 容器id/容器名
5、重新啟動容器:docker restart 容器id/容器名
6、停止容器:docker stop 容器id/容器名
7、后臺創(chuàng)建容器: docker run --name (自定義容器名) -d -p (訪問端口:映射端口) 鏡像id
例:創(chuàng)建一個(gè)mysql的容器,用戶名root,密碼是root
docker run --name mysql -d -p 53306:3306 -e MYSQL_ROOT_PASSWORD=root
8、可操作容器創(chuàng)建:docker run --name (自定義容器名) -it -p (訪問端口:映射端口) 鏡像id //bin/bash
9、容器與容器之間的連接:--link 連接的容器:容器,例如:--link tomcat:mysql ,這樣tomcat就能訪問mysql了。
遇到的問題:
[root@master ~]# docker run --name registry_server -d -p 5000:5000
WARNING: IPv4 forwarding is disabled. Networking will not work.
解決方案:
# vi /etc/sysctl.conf
添加如下代碼:
net.ipv4.ip_forward=1
重啟network服務(wù)
# systemctl restart network
查看是否修改成功
# sysctl net.ipv4.ip_forward
如果返回為“net.ipv4.ip_forward = 1”則表示成功了
10、容器創(chuàng)建之后,再次進(jìn)入容器:docker container attach 容器id(有些鏡像進(jìn)不去,回車后沒有反映說明該容器不能進(jìn)入ctrl+c強(qiáng)制退出后容器會停止運(yùn)行)(現(xiàn)在已經(jīng)不建議是用了)
11、操作容器,不進(jìn)入:docker container exec 容器id 操作命令(ls,等)
12、停止一個(gè)或多個(gè)指定容器進(jìn)程:docker kill 鏡像id/名稱或容器id\名稱
13、暫停某個(gè)容器的所有進(jìn)程:docker pause 容器id/名稱
14、恢復(fù)某個(gè)容器的所有進(jìn)程:docker unpause 容器id/名稱
15、查看容器詳情:docker container inspect 容器id
16、docker container 命令使用:
attach Attach to a running container
附加到正在運(yùn)行的容器上
commit Create a new image from a container's changes
從容器的更改中創(chuàng)建一個(gè)新映像
cp Copy files/folders between a container and the local filesystem
在容器和本地文件系統(tǒng)之間復(fù)制文件/文件夾
create Create a new container
創(chuàng)建一個(gè)新容器
diff Inspect changes to files or directories on a container's filesystem
差異檢查容器文件系統(tǒng)中文件或目錄的更改。
exec Run a command in a running container
在運(yùn)行的容器中運(yùn)行命令
export Export a container's filesystem as a tar archive
導(dǎo)出導(dǎo)出一個(gè)容器的文件系統(tǒng)作為一個(gè)TAR歸檔文件
inspect Display detailed information on one or more containers
檢查在一個(gè)或多個(gè)容器上顯示詳細(xì)信息。
kill Kill one or more running containers
殺死一個(gè)或多個(gè)正在運(yùn)行的容器
logs Fetch the logs of a container
日志獲取容器的日志
ls List containers
ls列出的容器
pause Pause all processes within one or more containers
在一個(gè)或多個(gè)容器中暫停所有進(jìn)程
port List port mappings or a specific mapping for the container
端口列表端口映射或容器的特定映射
prune Remove all stopped containers
刪除所有停止的容器
rename Rename a container
重命名容器
restart Restart one or more containers
重新啟動一個(gè)或多個(gè)容器
rm Remove one or more containers
刪除一個(gè)或多個(gè)容器
run Run a command in a new container
在新容器中運(yùn)行命令
start Start one or more stopped containers
啟動一個(gè)或多個(gè)已停止的容器
stats Display a live stream of container(s) resource usage statistics
統(tǒng)計(jì)信息顯示一個(gè)動態(tài)的容器資源使用統(tǒng)計(jì)數(shù)據(jù)流。
stop Stop one or more running containers
停止一個(gè)或多個(gè)正在運(yùn)行的容器
top Display the running processes of a container
頂部顯示容器的運(yùn)行過程。
unpause Unpause all processes within one or more containers
取消暫停取消暫停所有過程的一個(gè)或多個(gè)容器內(nèi)
update Update configuration of one or more containers
更新一個(gè)或多個(gè)容器的配置
wait Block until one or more containers stop, then print their exit codes
等待塊直到一個(gè)或多個(gè)容器停止,然后打印出它們的出口代碼。
如果遇到命令不好用,建議去查相應(yīng)的--help命令