• docker命令


    1、service docker status
    查看docker守护进程运行的状态

    2、service docker start
    启动docker的守护进程

    3、service docker stop
    关闭docker的守护进程

    4、docker info
    返回所有容器和镜像的数量、docker使用的执行驱动和存储驱动、以及docker的基本配置信息

    5、docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

     docker run -i -t ubuntu /bin/bash
    
    表示创建并启动一个容器,该容器有自己的网络、IP地址;容器中启动了一个ubuntu系统;-i表示设置STDIN,容器运行后接受输入,-t表示容器运行后启动一个tty终端,便于与用户交互,-t和-t都属于OPTIONS;ubuntu是要运行镜像的名字; /bin/bash表示容器启动后运行的初始命令。
    运行命令后,会显示“root@410923f574b8:/# ”,表示容器创建并启动成功,容器的ID是410923f574b8,容器中成功运行了ubuntu系统,启动了一个root的bash,然后就可以在这个容器中的ubuntu上执行各种shell命令了;执行exit命令就回到了原宿主ubuntu上了。
    执行exit后,容器就停止了,只有在制定的/bin/bash命令处于运行状态的时候,容器才会处于运行状态,一旦退出容器,/bin/bash命令也就停止了,容器也就随之停止了。
    
    docker run --name my_ubuntu -i -t ubuntu /bin/bash 
    #用--name指定容器的名字为my_ubuntu,如不指定,系统会默认为容器指定一个名字。如果创建容器相同的名字,会提示失败
    
    docker run --name my_ubuntu -d ubuntu /bin/bash -c "while true; do echo hello lzj; sleep 2; done"
    创建守护式容器,没有交互终端;-d 指明创建的容器为守护容器; -c指定?
    
    docker run --restart=always --name my_ubuntu -d ubuntu /bin/bash -c "while true; do echo hello lzj; sleep 2; done"
    #--restart=always指定当my_ubuntu退出后,会自动重启。
    docker run --restart=on-failure --name my_ubuntu -d ubuntu /bin/bash -c "while true; do echo hello lzj; sleep 2; done"
    #--restart=on-failure 指定当容器退出代码非0值的时候,才会自动重启。
    docker run --restart=on-failure:10 --name my_ubuntu -d ubuntu /bin/bash -c "while true; do echo hello lzj; sleep 2; done"
    #指定最多重启次数为10
    
    docker run -i -t --name docker_name ubuntu:13.06 /bin/bash
    #创建一个docker_name容器,运行13.06版本的ubuntu镜像。当仓库中有很多版本的镜像,用此版本指定
    
    docker run -d ubuntu:latest /bin/bash
    #让docker容器在后台以守护状态运行,要想查看容器的运行日志,可以用docker logs
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    6、docker ps [OPTIONS]

    	docker ps    #默认显示正在运行的容器
    	docker ps -a #列出所有容器,包括正在运行的和已经停止的
    	docker ps -l #列出最后一个运行的容器,无论这个容器是正在运行的还是已经停止的
    	docker ps -l -q #列出最后一个运行的容器的id,无论这个容器是正在运行的还是已经停止的
    	docker ps -n x #显示最后x个容器,不论容器是运行还是已经停止状态的
    
    • 1
    • 2
    • 3
    • 4
    • 5

    7、docker start docker_name(容器名)/docker_id
    对于已经停止的ring器,可以用start命令启动,或者用docker restart docker_name(容器名)/docker_id

    8、docker start docker_name(容器名)/docker_id 与 docker restart docker_name(容器名)/docker_id区别

    docker start docker_name(容器名)/docker_id 会丢弃创建容器时指定的各种参数以及初始运行的命令,比如-i 、 -t、 、/bin/bash。
    docker restart docker_name(容器名)/docker_id 会保留上述参数,只需要运行 docker attach my_ubuntu,又可以进行交互界面
    
    • 1
    • 2

    9、docker stop docker_name(容器名)/docker_id #停止容器

    10、docker logs [OPTIONS] CONTAINER

    docker logs docker_name(容器名)/docker_id  
    打印容器的运行的日志,可以是运行的,也可以是已经停止的容器;尤其是对于守护式容器,可以打印出日志
    dcoker logs -f docker_name(容器名)/docker_id  #可以实时监控日志
    docker logs --tail 10 docker_name(容器名)/docker_id   #打印出最后10条日志
    
    • 1
    • 2
    • 3
    • 4

    11、docker top docker_name(容器名)/docker_id #显示docker_name容器中进程

    12、docker stats [OPTIONS] [CONTAINER…]

    docker status    #可以查看所有守护进程占用的CPU、内存、网络I/O及存储性能I/O的性能和指标
    
    • 1

    13、在已经启动的容器内部运行进程

    docker exec -d docker_name/docker_id touch /home/test.txt
    # -d表示后台进程,表示在docker_name容器中运行一个后台进程,用于创建一个test.txt文件,注意该文件存在于容器home目录下,而不是宿主机的home下
    
    docker exec -i -t docker_name/docker_id /bin/bash
    #表示创建tty终端,并捕捉STDIN,紧接着在容器内启动一个交互式命令,此时执行exit命令,会退出这个交互式窗口,并不会结束这个容器
    
    • 1
    • 2
    • 3
    • 4
    • 5

    14、docker kill [OPTIONS] CONTAINER [CONTAINER…]

    docker kill docker_name/docker_id   #杀死指定的容器
    docker kill 与 docker stop 区别
    docker stop命令会向指定容器发送SIGTERM信号
    docker kill命令会向指定容器发送SIGKILL信号
    
    • 1
    • 2
    • 3
    • 4

    15、docker inspect [OPTIONS] NAME|ID [NAME|ID…]

    docker inspect docker_name/docker_id  #可以查看docker_name容器的详细信息,也可以同时查看多个容器的信息
    
    docker inspect 与 docker ps 区别
    docker inspect显示指定容器的详细信息;docker ps显示指定容器的简单信息
    
    • 1
    • 2
    • 3
    • 4

    16、docker rm [OPTIONS] CONTAINER [CONTAINER…]

    docker rm docker_name/docker_id   #删除指定容器
    docker rm -f docker_name/docker_id 	#强制删除指定容器
    docker rm `sudo docker ps -a -q`    #删除现有的全部容器,-a会返回所有的容器,-q只返回容器的ID,而不会返回其它的信息
    docker rm $(docker ps -a -q)       #删除所有容器
    
    • 1
    • 2
    • 3
    • 4

    17、docker image COMMAND

    docker image ls  #列出本地所有的镜像
    docker image rm -f docker_name/docker_id 	#强制删除指定的镜像
    
    • 1
    • 2

    18、docker pull [OPTIONS] NAME[:TAG|@DIGEST]

    docker pull ubuntu:18.10    #从docker hub上拉取18.10版本的ubuntu系统
    
    • 1

    19、docker search [OPTIONS] TERM

    docker search ubuntu 	#从docker hub上查找所有可用的ubuntu镜像
    
    • 1

    20、做镜像,比如在ubuntu上安装一个apache,然后做成一个镜像

    1、登录docker hub
    	docker login
    2、运行ubuntu镜像
    	docker run -i -t ubuntu /bin/bash
    3、在容器中安装apache
    	apt-get update && apt-get install apache
    4、退出容器,把容器做成镜像
    	docker commit 4fed29523119 softwarebird/apache2	 #4fed29523119为容器ID,softwarebird/apache2为仓库名和镜像名
    5、或者做镜像时指定更多信息
    	docker commit -m"my image" -a"lzj" 4fed29523119 softwarebird/apache2:0.1
    	#-m指定提交的信息,-a指定作者
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    21、docker build [OPTIONS] PATH | URL | -

        docker build -i -t softwarebird/my_hello /bin/bash
    
    • 1

    22、将镜像推送到docker hub

        docker push softwarebird/my_hello
    
    • 1

    23、删除镜像
    格式:docker rmi [OPTIONS] IMAGE [IMAGE...]
    示例:

        docker rmi 48e8ec9dc407		#48e8ec9dc407为镜像ID
        docker rmi softwarebird/my_hello2		#softwarebird/my_hello2	为镜像名
        docker rmi -f softwarebird/my_hello2 		#-f表示强制删除
        docker rmi `docker images -a -q`	#删除所有镜像
    
    • 1
    • 2
    • 3
    • 4

    24、查找容器中端口对应的宿主机端口
    格式:docker port CONTAINER [PRIVATE_PORT[/PROTO]]

    docker port container_name 80   #查询container_name容器中80端口映射在宿主机上的端口
    
    • 1

    25、导入导出镜像
    导入:docker save [OPTIONS] IMAGE [IMAGE...]
    导出:docker load [OPTIONS]
    示例:

    docker save -o hello.zip softwarebird/my_hello
    #把镜像保存到hello.zip文件中 
    docker load -i hello.zip
    #把镜像从hello.zip提取出来,然后用docker images命令可以查看提取的命令
    
    • 1
    • 2
    • 3
    • 4

    26、镜像打标签
    docker tag可以给做好的镜像重新打标签,但是原来的镜像依旧存在。
    格式:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    示例:`

    docker tag ubuntu:latest ubuntu:19.04
    #把latest版本的ubuntu镜像重新打包成19.04版本的ubuntu镜像,然后就存在两个版本的ubuntu镜像`
    
    • 1
    • 2

    27、镜像查找
    docker search默认从docker hub上查找指定镜像
    格式:docker search [OPTIONS] TERM
    示例:

    		    docker search ubuntu
    		    #查找所有的ubuntu镜像
    
    • 1
    • 2

    28、创建镜像
    格式:docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
    示例:

    		docker create -it ubuntu:latest
    		#最新版的ubuntu镜像创建一个容器,执行命令后,立即返回创建的容器的id。创建后的容器是停止状态的,可以用docker start命令启动创建好的容器	
    
    • 1
    • 2

    29、进入容器
    当容器以守护进程方式启动后,如果想进入容器操作,例如

    	    docker run -idt ubuntu
    
    • 1

    要想进入容器操作,可以选择如下两种方式:

    - attach

    	    docker attach stoic_murdock
    
    • 1

    - exec

    	     docker exec -it serene_banach /bin/bash
    
    • 1
  • 相关阅读:
    Centos系统阿里云yum源安装docker
    SSM基于微信小程序的实验室安全管理系统毕业设计-附源码031527
    “华为杯”研究生数学建模竞赛2015年-【华为杯】E题:数控加工刀具运动的优化控制模型研究(续)(附MATLAB代码实现)
    数据库的基础概念和代码例子(增删改查和其他操作-约束)
    【光伏场地建设规划】python实现-附ChatGPT解析
    maven 进阶
    机器人中的数值优化(十五)——PHR增广拉格朗日乘子法
    华为云云耀云服务器L实例评测|轻松购买 快速使用 上云如此简单【详细版】
    go语言运行命令
    深度学习-矩阵计算
  • 原文地址:https://blog.csdn.net/m0_67391870/article/details/126327451