Docker的基本管理命令!!!学会docker的第一步
生活随笔
收集整理的這篇文章主要介紹了
Docker的基本管理命令!!!学会docker的第一步
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
深夜博文,干活滿滿
- Docker的安裝
- Docker鏡像的基礎命令
- 1.查看鏡像與版本信息
- 2.查找指定鏡像
- 3.下載鏡像 pull
- 4.獲取鏡像信息 inspect
- 5.給鏡像設置多標簽 tag
- 6.導出與導入鏡像
- Docker容器的基礎命令
- 1.查看容器
- 2.創建容器
- 3.容器的啟動
- 4.docker run
- 5.容器的刪除
- 6.進入與退出容器
- 7.容器的導入導出
- 一些常識性問題
- docker日志的查看
Docker的安裝
##這里我用的是阿里線網源,所以需要先搭建yum線網源倉庫## [root@localhost ~]# hostnamectl set-hostname docker [root@localhost ~]# su[root@docker ~]# cd /etc/yum.repos.d/ [root@docker yum.repos.d]# ls backup local.repo [root@docker yum.repos.d]# ls backup local.repo [root@docker yum.repos.d]# rm -rf local.repo [root@docker yum.repos.d]# mv backup/* /etc/yum.repos.d/ [root@docker yum.repos.d]# ll total 28 drwxr-xr-x. 2 root root 6 Nov 10 06:38 backup -rw-r--r--. 1 root root 1664 Aug 30 2017 CentOS-Base.repo -rw-r--r--. 1 root root 1309 Aug 30 2017 CentOS-CR.repo -rw-r--r--. 1 root root 649 Aug 30 2017 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 314 Aug 30 2017 CentOS-fasttrack.repo -rw-r--r--. 1 root root 630 Aug 30 2017 CentOS-Media.repo -rw-r--r--. 1 root root 1331 Aug 30 2017 CentOS-Sources.repo -rw-r--r--. 1 root root 3830 Aug 30 2017 CentOS-Vault.repo[root@docker yum.repos.d]# yum clean all [root@docker yum.repos.d]# yum makecache ##添加阿里docker線網源##[root@docker yum.repos.d]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo##添加完成后會有一個docker-ce.repo## [root@docker yum.repos.d]# ls docker-ce.repo[root@docker yum.repos.d]# yum install -y docker-ce [root@docker yum.repos.d]# systemctl start docker.service [root@docker yum.repos.d]# systemctl enable docker.service- 鏡像加速
為什么做鏡像加速,不加速的話很卡很卡很卡!!!
- 網絡優化
- 安裝完docker后,會自動分配一塊網卡
- 它的功能就像安裝VM時自動給你分配的VM1與VM8,用于宿主機的物理網卡(比如ens33),與docker內部容器的網絡連通
Docker鏡像的基礎命令
1.查看鏡像與版本信息
##因為我沒有鏡像所以無任何顯示## [root@docker docker]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE 鏡像名稱 鏡像標簽 鏡像ID 什么時候創建的 鏡像大小 ##查看docker的版本信息## [root@docker docker]# docker version Client: Docker Engine - CommunityVersion: 19.03.13API version: 1.40Go version: go1.13.15Git commit: 4484c46d9dBuilt: Wed Sep 16 17:03:45 2020OS/Arch: linux/amd64Experimental: falseServer: Docker Engine - CommunityEngine:Version: 19.03.13 API version: 1.40 (minimum version 1.12)Go version: go1.13.15 ##go語言寫的,go語言會大火吧Git commit: 4484c46d9dBuilt: Wed Sep 16 17:02:21 2020OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.3.7GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175runc:Version: 1.0.0-rc10GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dddocker-init:Version: 0.18.0GitCommit: fec36832.查找指定鏡像
##全球的nginx鏡像,按照熱度排行### [root@docker docker]# docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 13981 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1906 [OK] richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 791 [OK] linuxserver/nginx An Nginx container, brought to you by LinuxS… 128 jc21/nginx-proxy-manager Docker container for managing Nginx proxy ho… 109 tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp… 103 [OK] bitnami/nginx Bitnami nginx Docker Image 90 [OK] alfg/nginx-rtmp NGINX, nginx-rtmp-module and FFmpeg from sou… 80 [OK] jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 66 [OK] nginxdemos/hello NGINX webserver that serves a simple page co… 63 [OK]3.下載鏡像 pull
##AUFS 若干層下載## [root@docker docker]# docker pull nginxUsing default tag: latest latest: Pulling from library/nginx bb79b6b2107f: Pull complete 5a9f1c0027a7: Pull complete b5c20b2b484f: Pull complete 166a2418f7e8: Pull complete 1966ea362d23: Pull complete Digest: sha256:aeade65e99e5d5e7ce162833636f692354c227ff438556e5f3ed0335b7cc2f1b Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest##查看鏡像## [root@docker docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest c39a868aad02 4 days ago 133MB ##你的下載文件存放信息位置## [root@docker overlay2]# vim /var/lib/docker/image/overlay2/repositories.json {"Repositories":{"nginx": {"nginx:latest":"sha256:c39a868aad02a383c7e490e0fc4a5b0217f667f2de764bc2755e315a5adf64a1" ,"nginx@sha256:aeade65e99e5d5e7ce162833636f692354c227ff438556e5f3ed0335b7cc2f1b":"sha256: c39a868aad02a383c7e490e0fc4a5b0217f667f2de764bc2755e315a5adf64a1"}}}4.獲取鏡像信息 inspect
##獲取鏡像信息## [root@docker overlay2]# docker inspect c39a868aad02 [{"Id": "sha256:c39a868aad02a383c7e490e0fc4a5b0217f667f2de764bc2755e315a5adf64a1","RepoTags": ["nginx:latest"],"RepoDigests": [//......."AttachStdin": false,"AttachStdout": false,"Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",//.......- 這里插個小知識點,容器資源的格式幾乎都是 json , yaml 兩種
5.給鏡像設置多標簽 tag
[root@docker overlay2]# docker tag nginx:latest nginx:111 [root@docker overlay2]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx 111 c39a868aad02 4 days ago 133MB nginx latest c39a868aad02 4 days ago 133MB- 這個相當于起別名
- 注意:在鏡像有多標簽時,使用ID號刪除是刪不了的,只有剩下一個標簽你才能刪
6.導出與導入鏡像
##導出鏡像,-o表示導出+導出位置與名字+導出哪個鏡像## [root@docker opt]# docker save -o /opt/nginx nginx:latest [root@docker opt]# ll -h -rw------- 1 root root 131M Nov 10 07:42 nginx ##這個時候我們刪除原本鏡像,并導回####查看鏡像 [root@docker opt]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest c39a868aad02 4 days ago 133MB##刪除鏡像 [root@docker opt]# docker rmi nginx:latest Untagged: nginx:latest Untagged: nginx@sha256:aeade65e99e5d5e7ce162833636f692354c227ff438556e5f3ed0335b7cc2f1b Deleted: sha256:c39a868aad02a383c7e490e0fc4a5b0217f667f2de764bc2755e315a5adf64a1 Deleted: sha256:1af47386c12cb24b362bd785e71058ab675fbdcbda8e7a7ba0dd10c3cff75a2a Deleted: sha256:25ee02f9e42f8cdca7ca8bc522cb69ac4a86a55401818a13c7a01e52a81894fe Deleted: sha256:b1d2bc3292aa3d64794f99d2885d35b454993b4af24ad350a969d27925db7ebb Deleted: sha256:4216e20d59f9fc90bccdd14493452532806d4803a25514366de2a9c5560624d0 Deleted: sha256:d0fe97fa8b8cefdffcef1d62b65aba51a6c87b6679628a2b50fc6a7a579f764c##再次查看鏡像 [root@docker opt]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ##用load 導入鏡像 [root@docker opt]# docker load < /opt/nginx d0fe97fa8b8c: Loading layer 72.49MB/72.49MB 2baf69a23d7a: Loading layer 64.54MB/64.54MB 2f57e21e4365: Loading layer 3.072kB/3.072kB aee208b6ccfb: Loading layer 4.096kB/4.096kB 7b5417cae114: Loading layer 3.584kB/3.584kB Loaded image: nginx:latest##查看鏡像## [root@docker opt]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest c39a868aad02 4 days ago 133MBDocker容器的基礎命令
1.查看容器
[root@docker opt]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 容器的ID 使用的哪一個鏡像創建的 環境 創建的時間 容器的狀態 協議與端口- -a :查看所有容器狀態,不加的話查看的是已經運行的容器
2.創建容器
- 容器基于鏡像創建,所以你需要先看有沒有鏡像
- -i : 讓容器的標準輸入保持打開
- -t : 讓docker分配一個偽終端
- /bin/bash : 需要的環境
3.容器的啟動
[root@docker opt]# docker start bb38787230cf bb38787230cf [root@docker opt]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bb38787230cf nginx:latest "/docker-entrypoint.…" 2 minutes ago Up 6 seconds 80/tcp hopeful_maxwell- 注意:這里并不意味著你就可以對外提供服務了,你還需要做NAT映射,為了保護容器的安全性
4.docker run
- docker run : 一條命令執行下載鏡像,創建容器,開啟容器
- docker run后面跟鏡像,有直接使用,沒有會直接去下載鏡像,-c 后面跟要在容器種操作的指令
5.容器的刪除
- 刪除容器前,要先關閉容器,否則刪除不了
6.進入與退出容器
- 注意點:你進入的容器一定要是開啟狀態,否則無法進入
7.容器的導入導出
- 容器的導出(存儲到指定目錄+備注名)
這個時候我們去刪除這個容器
##可以看到,正在運行的容器是不能刪除的## [root@docker opt]# docker rm 546b2311fcff Error response from daemon: You cannot remove a running container 546b2311fcff7ec4c6fa46c70bcd1c8bb4007577a99ebade3559fd3396bc47a6. Stop the container before attempting removal or force remove##只有停止狀態或運行結束狀態的容器才可以刪除## [root@docker opt]# docker stop 546b2311fcff 546b2311fcff[root@docker opt]# docker rm 546b2311fcff 546b2311fcff- 容器的導入
- 注意點:容器導入并不會創建容器,只會生成鏡像
一些常識性問題
-
(1)正在運行的或者停止的容器,是不可以直接刪除它的鏡像的,只要你docker ps -a 能查到,它的鏡像就刪不了
-
(2)正在運行的容器不可以直接刪除
-
(3)有多標簽的相同ID的鏡像,你不能通過刪除ID的方式刪除這個鏡像,除非你 rmi -f 強制刪除
docker日志的查看
查看實時日志,不看歷史:
docker -f --tail 1 container_id查看后100行的日志:
docker logs --tail 100 container_id查看30分鐘之內日志
docker logs --since 30m container_id查看指定日期之后的日志 (2019-03-25T13:00:00 到現在的日志)
docker logs -t --since="2019-03-25T13:00:00" container_id查看指定時間后的日志,只顯示最后100行:
docker logs -f -t --since="2019-03-25" --tail=100 container_id查看指定時間段之內的日志, (–until 需要docker API 1.35 之上才支持)
docker logs -t --since="2019-03-25T13:00:00" --until="2019-03-25T14:00:00" container_id對查詢到的日志內容進行過濾
docker logs -f --tail=100 container_id | grep 'xxx'總結
以上是生活随笔為你收集整理的Docker的基本管理命令!!!学会docker的第一步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux redhat下载地址
- 下一篇: 从发不起工资到融资1650万,逸创创始人