Centos7 docker 常用指令


Docker 運行在 CentOS 7 上,要求系統為64位、系統內核版本為 3.10 以上

一、docker的安裝及卸載

1.查看當前系統內核版本:

[root@docker ~]# uname -r
3.10.0-514.el7.x86_64

2.安裝docker

[root@docker ~]# yum -y install docker-io

3.啟動 Docker 后台服務

[root@docker ~]# systemctl start docker.service

4.鏡像加速

鑒於國內網絡問題,后續拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來解決,我使用的是阿里的鏡像地址:

在/etc/docker/daemon.json文件中添加如下內容.

{
  "registry-mirrors": ["https://wghlmi3i.mirror.aliyuncs.com"]
}

或者使用如下地址

{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

修改保存后重啟 Docker 以使配置生效,至此,docker安裝完成!!!

5.卸載docker

列出你安裝過的包

[root@docker ~]# yum list installed | grep docker
docker.x86_64                        2:1.13.1-53.git774336d.el7.centos @extras  
docker-client.x86_64                 2:1.13.1-53.git774336d.el7.centos @extras  
docker-common.x86_64                 2:1.13.1-53.git774336d.el7.centos @extras  

6.刪除軟件包

[root@docker ~]# yum -y remove docker.x86_64
[root@docker ~]# yum -y remove docker-client.x86_64
[root@docker ~]# yum -y remove docker-common.x86_64

二、docker 常用指令

1.獲取一個新的鏡像

[root@docker ~]# docker pull [鏡像名稱]

2.列出鏡像列表

[root@docker ~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
docker.io/hello-world   latest              e38bc07ac18e        2 weeks ago         1.85 kB
docker.io/nginx         latest              b175e7467d66        2 weeks ago         109 MB
docker.io/centos        latest              e934aafc2206        2 weeks ago         199 MB
docker.io/mysql         latest              5195076672a7        6 weeks ago         371 MB

各個選項說明:

  • REPOSITORY:表示鏡像的倉庫源

  • TAG:鏡像的標簽

  • IMAGE ID:鏡像ID

  • CREATED:鏡像創建時間

  • SIZE:鏡像大小

3.查找鏡像

我們也可以使用 docker search 命令來從 Docker Hub 網站來搜索鏡像

[root@docker ~]# docker search nginx
INDEX       NAME                                                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/nginx                                                  Official build of Nginx.                        8341      [OK]       
docker.io   docker.io/jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker c...   1325                 [OK]
docker.io   docker.io/richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable ...   547                  [OK]
docker.io   docker.io/jrcs/letsencrypt-nginx-proxy-companion                 LetsEncrypt container to use with nginx as...   356                  [OK]
docker.io   docker.io/kong                                                   Open-source Microservice & API Management ...   182     

4.docker run指令:

Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

參數說明:
-d:讓容器在后台運行。
-P:將容器內部使用的網絡端口映射到我們使用的主機上。
-t:在新容器內指定一個偽終端或終端。
-i:允許你對容器內的標准輸入 (STDIN) 進行交互
-p:綁定指定端口

實例:

docker run -p 80:80 \
-v $PWD/nginx/html:/usr/share/nginx/html \
-v $PWD/nginx/conf:/etc/nginx \
-v $PWD/nginx/logs:/var/log/nginx \
--rm --name nginx -d nginx

5.docker exec :在運行的容器中執行命令

OPTIONS說明:

  • -d :分離模式: 在后台運行

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

  • -t :分配一個偽終端

實例:

docker exec -it 775c7c9ee1e1 /bin/bash  #其中775c7c9ee1e1 為容器ID號

6. docker logs [ID或者名字]    可以查看容器內部的標准輸出

# docker logs 353e6c82b2fc
# docker logs -f 353e6c82b2fc

-f:讓 dokcer logs 像使用 tail -f 一樣來輸出容器內部的標准輸出。

7. 停止WEB應用容器

#docker stop cid|names

8. 移除WEB應用容器

#docker rm CID|NAMES

9. 查詢最后一次創建的容器

#docker ps -l

10.docker commit :從容器創建一個新的鏡像。

OPTIONS說明:
 -a :提交的鏡像作者;
 -c :使用Dockerfile指令來創建鏡像;
 -m :提交時的說明文字;
 -p :在commit時,將容器暫停。

提交變更,類似於git的commit,只提交變化的部分

docker commit 2ee8517b15cf test/oracle

也可以像git一樣指定更加詳細的提交信息.

# docker commit -a "saneri" -m "my dev oracle" 5cbe0fdb46a6  dev_p2p/oracle:latest

11.docker ps : 列出容器

語法

docker ps [OPTIONS]

OPTIONS說明:

  • -a :顯示所有的容器,包括未運行的。

  • -f :根據條件過濾顯示的內容。

  • --format :指定返回值的模板文件。

  • -l :顯示最近創建的容器。

  • -n :列出最近創建的n個容器。

  • --no-trunc :不截斷輸出。

  • -q :靜默模式,只顯示容器編號。

  • -s :顯示總的文件大小。

12.docker inspect : 獲取容器/鏡像的元數據

語法: docker inspect [OPTIONS] NAME|ID [NAME|ID...]

OPTIONS說明:

  • -f :指定返回值的模板文件。

  • -s :顯示總的文件大小。

  • --type :為指定類型返回JSON。

實例:獲取鏡像tomcat的元信息# docker inspect tomcat

[ { "Id": "168ee1a88f2e4870067c1224693b846e4c086172b69e3a387afebbd641b53335", "Created": "2020-04-15T14:39:07.096022083Z", "Path": "catalina.sh" #獲取容器的ip地址 docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名稱 # docker inspect --format='{{.NetworkSettings.IPAddress}}' tomcat_test 172.17.0.2

#或者這樣寫,獲取容器使用的網橋

[root@localhost ~]# docker inspect -f {{.HostConfig.NetworkMode}} 262b42fb0c9f
redis_default

13.docker cp :用於容器與主機之間的數據拷貝.

語法:

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
OPTIONS說明:

-L :保持源目標中的鏈接  

實例:

1.將主機/home/www目錄拷貝到容器96f7f14e99ab的/www目錄下

docker cp /home/www 96f7f14e99ab:/www/

2.將主機/home/www 目錄拷貝到容器96f7f14e99ab中,目錄重命名為www

docker cp /home/www 96f7f14e99ab:/www

3.將容器96f7f14e99ab的/www目錄拷貝到主機的/tmp目錄中

docker cp  96f7f14e99ab:/www /tmp/

三、Docker刪除容器與鏡像

1.停止所有的container,這樣才能夠刪除其中的images:

docker stop $(docker ps -a -q)

如果想要刪除所有container的話再加一個指令:

docker rm $(docker ps -a -q)

查看當前有些什么images

docker images

刪除images,通過image的id來指定刪除誰

docker rmi <image id>

想要刪除untagged images,也就是那些id為的image的話可以用

docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

要刪除全部image的話

docker rmi $(docker images -q)

強制刪除全部image的話

docker rmi -f $(docker images -q)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM