【Docker】安裝+使用

在這裏插入圖片描述


一、安裝

1.docker軟件包在extras中默認存在,可以直接使用yum進行安裝

[root@tong ~]# yum repolist 
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                   repo name                                               status
!base/7/x86_64            CentOS-7                                                10,019
!epel/x86_64              Extra Packages for Enterprise Linux 7 - x86_64          12,860
!extras/7/x86_64          CentOS-7                                                   321
!nginx/x86_64             nginx repo                                                 138
!updates/7/x86_64         CentOS-7                                                   628
repolist: 23,966
[root@tong ~]# yum -y install docker
Loaded plugins: fastestmirror
base                                                             | 3.6 kB  00:00:00     
epel                                                             | 4.7 kB  00:00:00    
......
Installed:
  docker.x86_64 2:1.13.1-88.git07f3374.el7.centos    
  ......
  Complete!
[root@tong ~]# systemctl start docker     //啓動Docker
[root@tong ~]# docker -v   //查看版本
Docker version 1.13.1, build 07f3374/1.13.1
[root@tong ~]# docker version    //確定docker服務在運行,如果只有客戶端則說明服務未啓動
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-88.git07f3374.el7.centos.x86_64
 Go version:      go1.9.4
 Git commit:      07f3374/1.13.1
 Built:           Fri Dec  7 16:13:51 2018
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-88.git07f3374.el7.centos.x86_64
 Go version:      go1.9.4
 Git commit:      07f3374/1.13.1
 Built:           Fri Dec  7 16:13:51 2018
 OS/Arch:         linux/amd64
 Experimental:    false


二、基本使用

1.幫助

當你忘記命令時來使用它吧
docker

[root@client ~]# docker

Usage:	docker COMMAND
A self-sufficient runtime for containers
Options:
      --config string      Location of client config files (default "/root/.docker")
  -D, --debug              Enable debug mode
      --help               Print usage
  -H, --host list          Daemon socket(s) to connect to (default [])
  -l, --log-level string   Set the logging level ("debug", "info", "warn", "error", "fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
....................

2.鏡像操作

(1)查看

  • 查看鏡像:docker images
  • 查看鏡像製作歷史:docker history 鏡像名
  • 查看拉取到本地的鏡像:docker image list

(2)搜索
docker search 鏡像名

(3)拉取鏡像
docker pull 鏡像名

示例:

[root@tong ~]# docker search nginx     //搜索鏡像
INDEX       NAME                                                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/nginx                                                  Official build of Nginx.                        10742     [OK]       
docker.io   docker.io/jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker c...   1508                 [OK]
docker.io   docker.io/richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable ...   676                  [OK]
docker.io   docker.io/jrcs/letsencrypt-nginx-proxy-companion                 LetsEncrypt container to use with nginx as...   468                  [OK]
docker.io   docker.io/webdevops/php-nginx                                    Nginx with PHP-FPM                              120                  [OK]
........
docker.io   docker.io/ansibleplaybookbundle/nginx-apb                        An APB to deploy NGINX                          0                    [OK]
docker.io   docker.io/wodby/nginx                                            Generic nginx                                   0                    [OK]
[root@tong ~]# docker search nginx -s 100   //查找 star 數至少爲 100 的鏡像
Flag --stars has been deprecated, use --filter=stars=3 instead
INDEX       NAME                                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/nginx                                    Official build of Nginx.                        10742     [OK]       
docker.io   docker.io/jwilder/nginx-proxy                      Automated Nginx reverse proxy for docker c...   1508                 [OK]
docker.io   docker.io/richarvey/nginx-php-fpm                  Container running Nginx + PHP-FPM capable ...   676                  [OK]
docker.io   docker.io/jrcs/letsencrypt-nginx-proxy-companion   LetsEncrypt container to use with nginx as...   468                  [OK]
docker.io   docker.io/webdevops/php-nginx                      Nginx with PHP-FPM                              120                  [OK]
docker.io   docker.io/kitematic/hello-world-nginx              A light-weight nginx container that demons...   119                  

[root@tong ~]# docker pull docker.io/nginx   //拉取鏡像
Using default tag: latest
Trying to pull repository docker.io/library/nginx ... 
latest: Pulling from docker.io/library/nginx
177e7ef0df69: Pull complete 
ea57c53235df: Pull complete 
bbdb1fbd4a86: Pull complete 
Digest: sha256:b543f6d0983fbc25b9874e22f4fe257a567111da96fd1d8f1b44315f1236398c
Status: Downloaded newer image for docker.io/nginx:latest

[root@tong ~]# docker image list    //查看已經拉取到本地的鏡像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              7042885a156a        3 weeks ago         109 MB

3.容器操作

(1)創建容器:docker create [OPTIONS] IMAGE [COMMAND] [ARG…]

(2)查看

1.容器具體情況:docker inspect

2.容器名稱:docker ps

  • -a :顯示所有的容器,包括未運行的。
  • -f :根據條件過濾顯示的內容。
  • –format :指定返回值的模板文件。
  • -l :顯示最近創建的容器。
  • -n :列出最近創建的n個容器。
  • -q :靜默模式,只顯示容器編號。
  • -s :顯示總的文件大小。
[root@client ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
  • 容器服務端事件:docker events
  • 容器日誌:docker logs [OPTIONS] CONTAINER --tail選項可以指定查看最後幾條日誌 -t選項則可以對日誌條目附加時間戳 -f選項可以跟蹤日誌的輸出,直到手動停止
  • 容器變化情況: docker diff CONTAINER

(3)內容交互

  • 後臺型
[root@master ~]# docker exec -d 68656 touch test.txt
  • 交互型:
  [root@master ~]# docker exec -i -t  68656  /bin/bash
    root@68656146eb6e:/# ls
    a.txt  bin  boot  c.txt  dev  etc  haha  hello  home  lib  lib64  media  mnt  opt  proc  
    root  run  sbin  srv  sys  tmp  usr  var

(4)關閉容器

  • 正常關閉:docker stop
  • 強制關閉:docker kill

(5)刪除容器:docker rm CONTAINER
6)容器文件打包

  • export,與import相對應
  • save,與load命令相對應:docker save -o nginx.tar nginx

(7)容器導入內容

  • import,與export命令相對應
  • load,與save命令相對應:docker load < nginx.tar

(8)與宿主機之間拷貝文件

  • docker cp [OPTIONS] CONTAINER:PATH LOCALPATH
  • docker cp [OPTIONS] LOCALPATH|- CONTAINER:PATH

示例:

創建容器
[root@master ~]# docker create  -it --name "first1-docker"  docker.io/hello-world  /bin/bash
....

宿主機和容器之間拷貝文件
拷貝容器mysql中/usr/local/bin/first.sh文件到宿主機
[root@docker ~]#docker cp mysql:/usr/local/bin/first-.sh /root
宿主機拷貝至容器
[root@docker ~]## docker cp /root/first.sh mysql:/usr/local/bin/   

關閉容器
[root@master ~]# docker stop  mysql.1
[root@master ~]# docker kill $(docker ps -a -q)  //殺死所有狀態的容器
[root@master ~]# docker kill $(docker ps -q)   //殺死所有running狀態的容器
關於stop和kill
    docker stop命令給容器中的進程發送SIGTERM信號,默認行爲是會導致容器退出。容器內程序可以捕獲該信號並自行處理,例如可以選擇忽略。而docker kill則是給容器的進程發送SIGKILL信號,該信號會使容器必然退出。

刪除容器
[root@master ~]#docker rm  mysql.1         //-f強制刪除

查看容器內發生改變的
[root@master ~]# docker diff  nginx1
A /test.txt
C對應的均是目錄,A對應的均是文件

實時查看docker服務器端事件
[root@master ~]# docker start second_con
second_con
[root@master ~]# docker events

查看鏡像製作歷史
[root@master ~]# docker history docker.io/ubuntu
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
ebcd9d4fca80   7 weeks ago       /bin/sh -c #(nop)  CMD ["/bin/bash"]            0 B                 
<missing>       7 weeks ago         /bin/sh -c mkdir -p /run/systemd && echo 'doc  7B           
<missing>       7 weeks ago         /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/   2.759 kB          
<missing>       7 weeks ago         /bin/sh -c rm -rf /var/lib/apt/lists/*          0 B                
<missing>       7 weeks ago         /bin/sh -c set -xe   && echo '#!/bin/sh' > /u   745 B               
<missing>       7 weeks ago         /bin/sh -c #(nop) ADD file:d14b493577228a4989   117.9 MB 

容器文件系統打包
 [root@docker ~]# docker export -o mysql1_2.tar mysql1
 [root@master ~]# docker export mysql1 > mysql1_3.tar
import   根據tar文件的內容新建一個鏡像
[root@master ~]# docker import  mysql1_3.tar  mysql:v1
sha256:687b57b86ab854687de4c1d1cd796037032a17f8c93290700aabef31cc67f6e9
[root@master ~]# docker images 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章