【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 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章