一、幫助命令
docker version #顯示docker的版本資訊
docker info #顯示docker的系統資訊,包括鏡像和容器的數量
docker 命令 --help #幫助命令
幫助檔案地址:https://docs.docker.com/engine/reference/commandline/cli/
二、鏡像命令
docker images #查看所有本地的主機的鏡像
eg:
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest b0e0b0a92cf9 2 weeks ago 680MB
nginx latest 87a94228f133 3 weeks ago 133MB
hello-world latest feb5d9fea6a5 6 weeks ago 13.3kB
#解釋:
REPOSITORY #鏡像的倉庫源
TAG #鏡像的標簽
IMAGE ID #鏡像的ID
CREATED #鏡像的創建時間
SIZE #鏡像的大小
#可選項(常用)
-a #列出所有鏡像(默認也會列出所有鏡像)
-q #只顯示鏡像的ID
#了解更多
docker images --help
docker search 鏡像名 #搜索鏡像(建議去docker hub的web頁面上搜)
eg:
[root@localhost ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11647 [OK]
mariadb MariaDB Server is a high performing open sou… 4433 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 864 [OK]
.......................
.......................
#可選項(常用)
--filter #根據提供的條件篩選輸出
eg:
[root@localhost ~]# docker search mysql --filter=STARS=3000 #搜索出來的都是STARS大于3000的
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11647 [OK]
mariadb MariaDB Server is a high performing open sou… 4433 [OK]
#了解更多
docker search --help
docker pull 鏡像名:tag #下載鏡像
eg:
[root@localhost ~]# docker pull mysql
Using default tag: latest #如果不寫tag,默認就是latest(最新版)
latest: Pulling from library/mysql
b380bbd43752: Already exists #分層下載,docker image的核心,聯合檔案系統
f23cbf2ecc5d: Pull complete
30cfc6c29c0a: Pull complete
b38609286cbe: Pull complete
8211d9e66cd6: Pull complete
2313f9eeca4a: Pull complete
7eb487d00da0: Pull complete
4d7421c8152e: Pull complete
77f3d8811a28: Pull complete
cce755338cba: Pull complete
69b753046b9f: Pull complete
b2e64b0ab53c: Pull complete
Digest: sha256:6d7d4524463fe6e2b893ffc2b89543c81dec7ef82fb2020a1b27606666464d87 #簽名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #真實地址
#等價
docker pull mysql 等價于 docker pull docker.io/library/mysql:latest
#指定版本下載
docker pull mysql:5.7(這個版本我已經在docker hub查過有這個版本,不能隨便寫)
#了解更多
docker pull --help
docker rmi -f 鏡像ID #洗掉鏡像
docker rmi -f 鏡像ID #洗掉指定鏡像
docker rmi -f 鏡像ID 鏡像ID 鏡像ID #洗掉多個鏡像
docker rmi -f $(docker images -aq) #洗掉全部的鏡像
三、容器命令
docker ps #列出當前正在運行的容器
可選引數(常用):
-a #列出正在運行的容器+歷史運行過的容器
#了解更多
docker ps --help
docker run [可選引數] 鏡像ID 啟動后進入的目錄 #新建容器并啟動
#引數說明(常用)
--name="Name" #容器名稱,如:tomcat01,tomcat02 用來區分容器
-d #后臺方式運行
-it #使用互動方式運行,進入容器查看內容
-p #指定容器的埠,默認什么都不寫的情況下,隨機指定埠
主機埠:容器埠(常用) eg:-p 8080:8080
啟動后進入的目錄 eg: /bin/bash 或 /root
eg:
[root@localhost ~]# docker run -it --name="mysql_01" mysql /bin/bash
root@39b60d099519:/# ls
bin dev entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint-initdb.d etc lib media opt root sbin sys usr
root@39b60d099519:/#
#從容器內退回主機
輸入 exit #容器停止并退出
按下 Ctrl+P+Q #容器不停止退出
#了解更多
docker run --help
docker rm 容器ID #洗掉指定的容器,不能洗掉正在運行的容器,如果要強制洗掉,則 rm -f
docker rm -f $(docker ps -aq) #洗掉所有的容器
docker ps -aq|xargs docker rm #洗掉所有的容器
docker start 容器ID #啟動容器
docker restart 容器ID #重啟容器
docker stop 容器ID #停止當前正在運行的容器
docker kill 容器ID #強制停止當前容器
四、其他常用命令
docker logs -tf --tail 數字 容器ID #顯示日志
常用引數:
-tf #顯示日志
--tail #要顯示的日志條數
eg:
docker logs -tf --tail 10 容器ID
#了解更多
docker log --help
docker top 容器ID #查看容器中行程資訊
#了解更多
docker top --help
docker inspect 容器ID #查看鏡像的元資料
#了解更多
docker inspect --help
我們通常容器都是使用后臺方式運行的,后續在進入容器進行一些操作
方式一: docker exec -it 容器ID 要進入的目錄 #進入當前正在運行的容器
eg:
docker exec -it 容器ID /bin/bash
方式二: docker attach 容器ID #進入當前正在運行的容器
docker exec #進入容器后開啟一個新的終端,可以在里面操作(常用)
docker attach #進入容器正在執行的終端,不會啟動新的行程
#了解更多
docker exec --help
docker attach --help
docker cp 容器ID:容器內路徑 目的主機路徑 #從容器內拷貝檔案到主機上(不常用,知道就行)
eg:
docker cp 容器ID:/home/test.java /home
docker commit -m="提交的描述資訊" -a "作者" 容器ID 新鏡像名 tag #提交容器成為一個新鏡像(不常用,知道就行)
五、容器資料卷
什么是容器資料卷技術?
容器之間有一個資料共享技術,就是Docker容器中的資料會同步到本地主機上,在本地主機上的操作的資料同步到Docker容器中,這就是容器資料卷技術
方式一:直接使用命令掛載 -v
docker run -it -v 主機目錄:容器內目錄
eg:
docker run -it -v /home/ceshi:/home centos /bin/bash
當容器啟動后,我們可以通過 docker inspect 容器Id 查看Mounts掛載資訊
上面這是指定路徑掛載!
匿名掛載:
-v 容器內路徑
eg:docker run -it -v /home centos /bin/bash
具名掛載(推薦使用):
-v 卷名:容器內路徑
eg:docker run -it -v ceshi:/home centos /bin/bash
所有的docker 容器內的卷,沒有指定目錄的情況下都是在 /var/lib/docker/volumes/... 下
方式二:是使用dockerfile在構建鏡像是就掛載,說到dockerfile在說這個
拓展:
通過 ro 和 rw 改變讀寫權限
ro #只讀
rw #可讀可寫
eg:
docker run -it -v ceshi:/home:ro centos /bin/bash
docker run -it -v ceshi:/home:rw centos /bin/bash
只要看到ro就說明這個路徑只能通過主機來操作,容器內部是無法操作
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/352529.html
標籤:其他
