Docker-学习笔记

    技术2023-11-02  115

    一、安装

    官方安装文档:https://docs.docker.com/engine/install/

    Linux版本:CentOS  7.6

    # 安装yum-utils软件包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加软件源信息 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装 docker-ce sudo yum makecache fast sudo yum -y install docker-ce # 开启Docker服务 sudo service docker start

    安装校验

    [root@iZ8vb8dbaanph3q5e9q532Z docker]# docker version Client: Docker Engine - Community  Version:           19.03.12  API version:       1.40  Go version:        go1.13.10  Git commit:        48a66213fe  Built:             Mon Jun 22 15:46:54 2020  OS/Arch:           linux/amd64  Experimental:      false

    Server: Docker Engine - Community  Engine:   Version:          19.03.12   API version:      1.40 (minimum version 1.12)   Go version:       go1.13.10   Git commit:       48a66213fe   Built:            Mon Jun 22 15:45:28 2020   OS/Arch:          linux/amd64   Experimental:     false  containerd:   Version:          1.2.13   GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429  runc:   Version:          1.0.0-rc10   GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd  docker-init:   Version:          0.18.0   GitCommit:        fec3683

     二、服务的启动与停止

    启动服务:systemctl start docker

    停止服务:systemctl stop docker

    重启服务:systemctl restart docker

    开机启动:systemctl enable docker

    查看docker状态:systemctl status docker

     三、容器基本操作

    docker ps    #查看当前正在运行的容器docker ps -a  #查看所有容器

        参数分别对应的含义:

    CONTAINER ID:容器的id,唯一标识符号,64位的十六进制证数。IMAGE:创建容器时使用的镜像COMMAND:容器最后运行的命令CREATED:创建容器的时间STATUS:容器的状态,容器关闭时间。PORTS:对外开放的端口NAMES:容器的名字

     

    docker的重启策略可以分为4种:

    1.no:表示不自动重启容器,默认。

    2.on-failure[:max-retries]:表示在退出状态为非0时才会重启(非正常退出),可选参数:可以设置最大重启次数,重启次数达到上限后就会放弃重启。

    3.always:表示始终重启容器,当docker守护进程启动时,也会重启,无论容器当时状态为何,都会尝试重启容器。

    4.ubless-stopped:表示始终重启容器,但是当docker守护进程启动时,如果容器已经停止运行,则不会去重启它。

     

    docker ps -n=2  #查看最新装载的2个容器docker create nginx  # 创建一个nginx容器docker create --name=nginx nginx   #创建容器时指定namedocker stats  # 查看容器占用资源docker start nginx # 运行一个已经存在的容器,可以通过name,id启动docker run  --name nginx -d -p 8080:80 nginx  # 容器创建+运行

    --name表示创建的容器的名字,-d表示容器在后台运行,-p表示将容器的80端口映射到宿主机的8080端口

    当用户执行docker run命令时,会自动去Docker hub上下载相关的镜像,也可以通过docker search搜索符合要求的镜像,如果希望此命令能够快速执行,可以在运行之前,先利用docker pull命令将镜像下载下来,然后再运行

    docker stop #终止容器docker --restart #容器运行过程中,出现问题能够自动重启docker rm # 删除一个容器,只能删除已经停止运行的容器,不能删除正在运行的容器,如果非要删除,可以通过-f参数实现docker rm $(docker ps -a -q) #批量删除容器 docker ps -a -q 会列出所有容器的id,供rm命令删除docker rmi #删除镜像,参数为id或者镜像名,参数可以有多个,多个参数之间用空格隔开。

    docker commit -m --author='zww' 1beab7618688 mysql:v1 #创建本地镜像

    -m表示对创建的该镜像一个简单的描述

    --author表示该镜像的作者

    1beab7618688 表示创建镜像所依据的容器id

    mysql表示容器名

    v1表示仓库的tag

     

    docker container prune #删除已退出的容器docker logs  # 查看容器日志docker attach # 依附容器,进入容器内部查看 这个命令用的很少 一般用 docker execdocker exec # 容器在后台启动时,可以使用此命令在容器内执行命令,即使用户从终端退出,容器也不会停止运行

    docker inspect #查看容器的详细信息

    包括容器的id、容器名、环境变量、运行命令、注机配置、网络配置以及数据卷配置等信息,部分执行结果如下图:

    使用format参数可以只查看用户关心的数据,例如:

    查看容器运行状态: docker inspect -f='{{.State.Running}}' nginx

    docker top # 查看容器中正在运行的进程

    docker export #导出容器

    cat zww_tomcat.tar | docker import - imported_tomcat  #导入容器docker builddocker volume ls #查看所有数据卷

    docker volume inspect #查看数据卷详情

    docker volume rm #删除一个数据卷docker volume prune #批量删除数据卷
    Processed: 0.010, SQL: 9