Docker常用命令-笔记

Docker常用命令--2020年7月3日

最近在学docker,cli命令太多了,怕一时间记不清楚,写个随笔记录一下。
就只列出了常用的部分命令,并不是全部的仅供我参考
Docker_Version-19.03.9

Docker

用法: docker [选项] 命令 [参数]
因为个人习惯,通常一个命令都是下面这种书写顺序。

#docker 命令 选项 参数
	    可选 可选

命令run

选项(可选)参数(可选)描述示例
镜像名称运行容器,如果镜像名称不存在,将会自动联网去https://hub.docker.com/ 下载,如果tag不指定则默认为latest#docker run ubuntu:15.10
-d在后台运行容器#docker run -d ubuntu:latest /bin/bash
--name容器名称指定启动的容器名称,如果不指定由docker随机词语#docker run -d --name one-name ubuntu:latest /bin/bash
-i交互模式,配合-t一同运行#docker run -it ubuntu:latest /bin/bash
-tshell路径设置终端,配合-i一同运行#docker run -it ubuntu:latest /bin/bash
-P映射容器端口到主机,主机端口为随机高端口#docker run -d -P training/webapp python app.py
-p参数为IP:1-65535端口号,前主机:后容器指定映射的端口#docker run -d -p 5001:5000 training/webapp python app.py或者#docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
-P -p默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp。#docker run -d -p 127.0.0.1:5001:5000/udp training/webapp python app.py
--network网络名称指定容器的网络#docker run -dit --network test-net ubuntu /bin/bash
-h主机名指定容器的主机名,缺省值为容器ID#docker run -it -h host1 ubuntu:latest /bin/bash
-v内外绝对目录映射主机目录volume#docker run -dit -v my-volume:/mnt/--name test1 -h host1 ubuntu:latest /bin/bash

每次使用Run运行镜像创建的容器都会另存为一个新的容器,所以run可以理解为是创建容器的意思。
使用docker ps -a查看所有创建过的容器信息。

其他容器操作命令

容器操作:参数为容器ID或者名字
start 启动容器
stop 停止容器
restart 重启容器
stats 实时显示容器的资源占用情况

#docker start test1
\\启动名为test1的容器

其他命令

命令选项描述参数示例
ps-a列出所有创建的容器,不写选项默认列出正在运行的容器详情#docker ps -a
execrun进入正在运行的容器容器id/name#docker exec -it test /bin/bash
export导出容器容器id/name和文件名#docker export ubuntu:latest > ubuntu.tar
import导入容器文件名和容器id/name#docker import ubuntu.tar ubuntu:restore
rm-f强制删除容器,不写选项无法删除正在运行的容器容器id/name#docker rm -f ubuntu:restore
images-a列出所有镜像,包括隐藏镜像,如果不添加选项则不会显示隐藏镜像。详情#docker images -a
search从仓库中搜索镜像并列出详情需要搜索的镜像名称#docker search httpd
pull从仓库拉取镜像镜像名称#docker pull httpd
tag设置镜像标签镜像id和要设置的镜像名称#docker tag f0f6e8d9e8d1 update/ubuntu:v2
rmi删除镜像镜像名称#docker rmi httpd

ps

#docker ps -a
\\列出所有容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
916b99970c5a        update/ubuntu       "/bin/bash"         About an hour ago   Exited (0) 31 minutes ago                       test2
f306fd5e7017        update/ubuntu       "/bin/bash"         About an hour ago   Up 21 minutes                                   test1
...

各列解释

CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
容器ID镜像名称运行的命令创建时间当前状态端口容器名称
#docker search httpd
\\搜索镜像
NAME                                    DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
httpd                                   The Apache HTTP Server Project                  3076                [OK]                
centos/httpd-24-centos7                 Platform for running Apache httpd 2.4 or bui…   33                                      
centos/httpd                                                                            29                                      [OK]
arm32v7/httpd                           The Apache HTTP Server Project                  9                                       
polinux/httpd-php                       Apache with PHP in Docker (Supervisor, CentO…   4                                       [OK]
salim1983hoop/httpd24                   Dockerfile running apache config                2                                       [OK]
publici/httpd                           httpd:latest                                    1                                       [OK]
...

各列解释

NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED
作者/镜像名称描述收藏量可以理解为热度官方正式版是否支持自动构建

images

#docker images
\\镜像列表
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos8/centos      6.7                 fe53dbc7b899        3 hours ago         191MB
update/ubuntu       latest              f0f6e8d9e8d1        3 hours ago         210MB
httpd               latest              ccbcea8a6757        3 weeks ago         166MB
hello-world         latest              bf756fb1ae65        5 months ago        13.3kB
...

各列解释

REPOSITORYTAGIMAGE IDCREATEDSIZE
仓库标签,常用来标识版本镜像ID创建时间大小

volume

数据卷相关docker volume comm [value]
command:

  • ls 列出所有数据卷
  • create 创建数据集[name]参数为数据卷名
  • inspect 显示该数据卷详细信息
  • prune 清楚所有不再使用的数据卷
  • rm 删除数据卷

最佳实践:

  1. 创建一个共享的数据卷,并挂载到容器中。
    创建一个名为my-data的数据卷
    docker volume create my-date

查看数据卷详情

#docker inspect my-date
[
    {
        "CreatedAt": "2020-08-21T14:46:29+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/my-data/_data",		\\这里是本机的路径
        "Name": "my-data",
        "Options": {},
        "Scope": "local"
    }
]

将他挂载到容器mnt目录中。

#docker run -dit --name volume-test -v my-date:/mnt centos:6.7 bash
#docker exec -it volume-test bash
#df -h
Filesystem           Size  Used Avail Use% Mounted on
overlay               37G   26G   12G  68% /
tmpfs                 64M     0   64M   0% /dev
tmpfs                2.9G     0  2.9G   0% /sys/fs/cgroup
shm                   64M     0   64M   0% /dev/shm
/dev/mapper/cl-root   37G   26G   12G  68% /mnt			\\这里就是数据卷的挂载路径
/dev/mapper/cl-root   37G   26G   12G  68% /etc/resolv.conf
/dev/mapper/cl-root   37G   26G   12G  68% /etc/hostname
/dev/mapper/cl-root   37G   26G   12G  68% /etc/hosts
tmpfs                2.9G     0  2.9G   0% /proc/asound
tmpfs                2.9G     0  2.9G   0% /proc/acpi
tmpfs                 64M     0   64M   0% /proc/kcore
tmpfs                 64M     0   64M   0% /proc/keys
tmpfs                 64M     0   64M   0% /proc/timer_list
tmpfs                 64M     0   64M   0% /proc/sched_debug
tmpfs                2.9G     0  2.9G   0% /proc/scsi
tmpfs                2.9G     0  2.9G   0% /sys/firmware

2.使用-v挂载宿主机目录到容器中
docker run -dit --name mount -v /home:/mnt centos:6.7 bash

# Docker 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×