21个Docker 命令

安装完成docker容器服务之后,需要了解如何操作它?在shell命令行下直接输入docker就可以查看帮助信息,如下。

# 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
  -v, --version            Print version information and quit

Management Commands:
  container   Manage containers
  image       Manage images
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  volume      Manage volumes

Commands:
  attach      Attach to a running container
  build       Build an image from a Dockerfile
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes on a container's filesystem
  events      Get real time events from the server
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

1、docker start/stop/restart/kill
启动/停止/重启/杀掉容器

实例操作如下:

# docker start myweb
#docker stop myweb
#docker restart myweb
#docker kill -s kill myweb
参数 -s  #向容器发送信号

这些命令不做过多解释

2、docker run

创建并启动一个新的容器

常用参数如下:

-d #后台运行容器,并返回容器ID
-i #以交互式模式运行容器,常与-t参数同时使用
-t #给容器重新分配一个伪终端,常与-i参数同时使用
–name #给容器指定一个名称
-m #指定容器使用内存的最大值
–net #指定容器使用的网络类型
–link #链接到另一个容器
实例操作如下:

# docker run -d --name nginx nginx:latest
#后台启动并运行一个名为nginx的容器,运行前它会自动去docker镜像站点下载最新的镜像文件\

# docker run -d -P 80:80 nginx:latest
#后台启动并运名为nginx的容器,然后将容器的80端口映射到物理机的80端口
# docker run -d -v /docker/data:/docker/data -P 80:80 nginx:latest
#后台启动并运名为nginx的容器,然后将容器的80端口映射到物理机的80端口,并且将物理机的/docker/data目录映射到容器的/docker/data

# docker run -it  nginx:latest /bin/bash
#以交互式模式运行容器,然后在容器内执行/bin/bash命令

3、docker rm

删除容器

常用参数如下:

-f #强制删除一个运行中的容器
-l #删除指定的链接
-v #删除与容器关联和卷
实例操作如下:

# docker rm -f mydocker
#强制删除容器mydocker

# docker rm -f dockerA dockerB
#强制删除容器dockerA,dockerB

# docker rm -v mydocker
#删除容器,并删除容器挂载的数据卷

4、docker create

创建一个新的容器但不启动它

[root@docker ~]# docker create --name myserver nginx:latest
09b93464c2f75b7b69f83d56a9cfc23ceb50a48a9db7652ee4c27e3e2cb1961f
#创建一个名为myserver的容器

5、docker exec

在运行的容器中执行命令

常用参数如下:

-d #在后台运行
-i #保持STDIN打开
-t #分配一个伪终端
实例操作如下:

# docker exec -it mydocker /bin/sh /server/scripts/docker.sh
hello world!!!!!!!!!!

#以交互模式执行容器中的/server/scripts/docker.sh脚本
# docker exec -it mydocker /bin/sh 
root@b1a0703e41e7:/#
#以交互模式给容器分配一个伪终端连接

6、docker ps

列出容器(正在运行)

常用参数如下:

-a #列出所有容器包括停止的
-f #根据条件过滤显示内容
-l #列出最近创建的容器
-n #列出最近创建的N个容器,N为数字
-q #只显示容器ID
-s #显示总文件大小
实例操作如下:

# docker ps
CONTAINER ID  IMAGE            COMMAND                  CREATED       STATUS       PORTS                                            NAMES
bd96d72ed9c7  google/cadvisor  "/usr/bin/cadvisor..."   47 hours ago  Up 47 hours  0.0.0.0:8082->8080/tcp                           cadvisor
665563143eb7  grafana/grafana  "/run.sh"                2 days ago    Up 2 days    0.0.0.0:3000->3000/tcp                           grafana
f2304dad5855  tutum/influxdb   "/run.sh"                2 days ago    Up 2 days    0.0.0.0:8083->8083/tcp, 0.0.0.0:8086->8086/tcp   influxdb

#列出正在运行的容器
# docker ps -n 2
CONTAINER ID   IMAGE               COMMAND                  CREATED       STATUS       PORTS                    NAMES
bd96d72ed9c7   google/cadvisor     "/usr/bin/cadvisor..."   47 hours ago  Up 47 hours  0.0.0.0:8082->8080/tcp   cadvisor
665563143eb7   grafana/grafana     "/run.sh"                2 days ago    Up 2 days    0.0.0.0:3000->3000/tcp   grafana

#列出最近创建的2个容器
# docker ps -a -q
bd96d72ed9c7
665563143eb7
f2304dad5855
9921d2660307
#显示所有容器的ID

7、docker inspect
获取容器的元数据

常用参数如下:

-f #指定返回值格式或模板文件
-s #显示总文件大小
–type #为指定类型返回JSON
实例操作如下:

# docker inspect bd96d72ed9c7
[
    {
        "Id": "bd96d72ed9c713591ba8db0ed4c0ae2689188255da71033c7bced6bb34aa8542",
        "Created": "2018-05-23T09:22:10.633809699Z",
        "Path": "/usr/bin/cadvisor",
        "Args": [
            "-logtostderr",
            "-storage_driver=influxdb",
            "-storage_driver_db=cadvisor",
            "-storage_driver_host=192.168.3.82:8086"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 17589,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-05-23T09:22:10.769771142Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:75f88e3ec333cbb410297e4f40297ac615e076b4a50aeeae49f287093ff01ab1",
        "ResolvConfPath": "/var/lib/docker/containers/bd96d72ed9c713591ba8db0ed4c0ae2689188255da71033c7bced6bb34aa8542/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/bd96d72ed9c713591ba8db0ed4c0ae2689188255da71033c7bced6bb34aa8542/hostname",
        "HostsPath": "/var/lib/docker/containers/bd96d72ed9c713591ba8db0ed4c0ae2689188255da71033c7bced6bb34aa8542/hosts",
        "LogPath": "",
        "Name": "/cadvisor",
        "RestartCount": 0,
        "Driver": "overlay2",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/:/rootfs,ro",
                "/var/run:/var/run",
-------------------------------------------省略部分内容
#获取容器ID为bd96d72ed9c7的元数据信息
# docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cadvisor
172.17.0.3
# docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' influxdb
172.17.0.2
#获取容器名为influxdbcadvisor的IP地址```

8、docker logs

获取容器的日志

常用参数如下:

-f #跟踪日志输出
-t #显示时间戳
–tail #只显示最新n条容器日志
–since #显示某个开始时间的所有日志
实例操作如下:

# docker logs -f cadvisor
I0523 09:22:10.794233       1 storagedriver.go:48] Using backend storage type "influxdb"
I0523 09:22:10.794295       1 storagedriver.go:50] Caching stats in memory for 2m0s
I0523 09:22:10.794551       1 manager.go:151] cAdvisor running in container: "/sys/fs/cgroup/cpuacct,cpu"
I0523 09:22:10.810585       1 fs.go:139] Filesystem UUIDs: map[]
I0523 09:22:10.810599       1 fs.go:140] Filesystem partitions: map[shm:{mountpoint:/dev/shm major:0 minor:47 fsType:tmpfs blockSize:0} overlay:{mountpoint:/ major:0 minor:46 fsType:overlay blockSize:0} tmpfs:{mountpoint:/dev major:0 minor:50 fsType:tmpfs blockSize:0} /dev/mapper/centos-root:{mountpoint:/rootfs,ro major:253 minor:0 fsType:xfs blockSize:0} /dev/sda1:{mountpoint:/rootfs,ro/boot major:8 minor:1 fsType:xfs blockSize:0} /dev/mapper/centos-home:{mountpoint:/rootfs,ro/home major:253 minor:2 fsType:xfs blockSize:0}]
W0523 09:22:10.812419       1 info.go:52] Couldn't collect info from any of the files in "/etc/machine-id,/var/lib/dbus/machine-id"
I0523 09:22:10.812460       1 manager.go:225] Machine: {NumCores:1 CpuFrequency:2799091 MemoryCapacity:8203235328 HugePages:[{PageSize:2048 NumPages:0}] MachineID: SystemUUID:564D5235-FED8-3630-AA2B-D65F0855D036 BootID:fd7b3fb5-e74f-4280-80cf-0a7096239619 Filesystems:[{Device:tmpfs DeviceMajor:0 DeviceMinor:50 Capacity:4101615616 Type:vfs Inodes:1001371 HasInodes:true} {Device:/dev/mapper/centos-root DeviceMajor:253 DeviceMinor:0 Capacity:140633964544 Type:vfs Inodes:68681728 HasInodes:true} {Device:/dev/sda1 DeviceMajor:8 DeviceMinor:1 Capacity:1063256064 Type:vfs Inodes:524288 HasInodes:true} {Device:/dev/mapper/centos-home DeviceMajor:253 DeviceMinor:2 Capacity:21464350720 Type:vfs Inodes:10485760 HasInodes:true} {Device:shm DeviceMajor:0 DeviceMinor:47 Capacity:67108864 Type:vfs Inodes:1001371 HasInodes:true} {Device:overlay DeviceMajor:0 DeviceMinor:46 Capacity:140633964544 Type:vfs Inodes:68681728 HasInodes:true}] DiskMap:map[253:0:{Name:dm-0 Major:253 Minor:0 Size:140660178944 Scheduler:none} 253:1:{Name:dm-1 Major:253 Minor:1 Size:8455716864 Scheduler:none} 253:2:{Name:dm-2 Major:253 Minor:2 Size:21474836480 Scheduler:none} 2:0:{Name:fd0 Major:2 Minor:0 Size:4096 Scheduler:deadline} 8:0:{Name:sda Major:8 Minor:0 Size:171798691840 Scheduler:deadline}] NetworkDevices:[{Name:eth0 MacAddress:02:42:ac:11:00:03 Speed:10000 Mtu:1500}] Topology:[{Id:0 Memory:8589467648 Cores:[{Id:0 Threads:[0] Caches:[{Size:32768 Type:Data Level:1} {Size:32768 Type:Instruction Level:1} {Size:262144 Type:Unified Level:2}]}] Caches:[{Size:26214400 Type:Unified Level:3}]}] CloudProvider:Unknown InstanceType:Unknown InstanceID:None}
#跟踪查看容器cadvisor的日志

9、docker port
显示指定容器的端口映射

实例操作如下:

# docker port cadvisor
8080/tcp -> 0.0.0.0:8082
#显示cadvisor容器的端口映射信息

10、docker commit

用已存在的容器重新创建一个新的镜像

常用参数如下:

-a #提交的镜像作者
-c #使用Dockerfile指令来创建镜像
-m #提交时附上说明文字
-p #在commit时,将容器暂停
实例操作如下:

# docker commit -a "mingongge" -m "add a new images" bd96d72ed9c7  newdocker_images:v1.0.0
sha256:20ee805752cb7cae660fbae89d7c6ea4a9c6372f16a6cb079ecf6c79f87ed8c9

# docker images
REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
newdocker_images    v1.0.0    20ee805752cb   7 seconds ago  62.2 MB
#将容器bd96d72ed9c7重新生成一个新的镜像名为newdocker_images

11、docker cp

用于容器与物理主机之间拷贝文件

实例操作如下:

[root[@docker]# docker cp /data/index.html bd96d72ed9c7:/web/
#将物理主机中的/data/index.html拷贝到容器bd96d72ed9c7:/web/目录下
[root@docker ~]# docker cp /data/index.html bd96d72ed9c7:/web/index.php
#将物理主机中的/data/index.html拷贝到容器bd96d72ed9c7:/web/目录下并改名为index.php
[root@docker ~]# docker cp  bd96d72ed9c7:/web  /data/
#拷贝容器bd96d72ed9c7:/web/目录到物理主机中的/data/目录下

12、docker login/logout
用于登录与登出容器镜像仓库

docker login       #登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout      #登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

常用参数如下:

-u #登陆的用户名
-p #登陆的密码
实例操作如下:

[root@docker ~]# docker login -u username -p password
Login Succeeded
[root@docker ~]# docker logout
Removing login credentials for https://index.docker.io/v1/
#登录与登出默认的容器镜像仓库

13、docker pull/push

docker pull #从镜像仓库中拉取或者更新指定镜像
docker push #将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

实例操作如下:

[root@docker ~]# docker  pull  nginx
Using default tag: latest
Trying to pull repository docker.io/library/nginx ... 
latest: Pulling from docker.io/library/nginx
f2aa67a397c4: Already exists 
3c091c23e29d: Pulling fs layer 
4a99993b8636: Pulling fs layer
#从镜像仓库中拉取或者更新指定镜像,输出信息如上
[root@docker ~]# docker push newdocker_images:v1.0.0
#上传镜像到镜像仓库上

14、docker images

显示系统本地容器镜像文件

常用参数如下:

-a #列出所有的镜像(含中间映像层,默认,过滤掉中间映像层);
–digests #显示镜像的摘要信息;
-f #显示满足条件的镜像;
–format #指定返回值的模板文件;
–no-trunc #显示完整的镜像信息;
-q #只显示镜像ID。
实例操作如下:

[root@docker ~]# docker images
REPOSITORY                                 TAG       IMAGE ID       CREATED         SIZE
newdocker_images                           v1.0.0    20ee805752cb   28 minutes ago  62.2 MB
docker.io/grafana/grafana                  latest    4700307f41f2   9 days ago      238 MB
registry.jumpserver.org/public/guacamole   1.0.0     6300349f2642   2 months ago    1.23 GB
docker.io/google/cadvisor                  latest    75f88e3ec333   5 months ago    62.2 MB
docker.io/tutum/influxdb                   latest    c061e5808198   19 months ago   290 MB
#列出本地所有的镜像
[root@docker ~]# docker images -q
20ee805752cb
4700307f41f2
6300349f2642
75f88e3ec333
c061e5808198
#只显示容器ID
[root@docker ~]# docker images --digests
REPOSITORY                                 TAG      DIGEST                                                                    IMAGE ID        CREATED         SIZE
newdocker_images                           v1.0.0   <none>                                                                    20ee805752cb    32 minutes ago  62.2 MB
docker.io/grafana/grafana                  latest   sha256:364bec4a39ecbec744ea4270aae35f6554eb6f2047b3ee08f7b5f1134857c32c   4700307f41f2    9 days ago      238 MB
registry.jumpserver.org/public/guacamole   1.0.0    sha256:ea862bb2e83b648701655c27900bca14b0ab7ab9d4572e716c25a816dc55307b   6300349f2642    2 months ago    1.23 GB
docker.io/google/cadvisor                  latest   sha256:9e347affc725efd3bfe95aa69362cf833aa810f84e6cb9eed1cb65c35216632a   75f88e3ec333    5 months ago    62.2 MB
docker.io/tutum/influxdb                   latest   sha256:5b7c5e318303ad059f3d1a73d084c12cb39ae4f35f7391b79b0ff2c0ba45304b   c061e5808198    19 months ago   290 MB
[root@docker ~]# docker images --no-trunc                                                                                                     
REPOSITORY                                 TAG      IMAGE ID                                                                  CREATED         SIZE
newdocker_images                           v1.0.0   sha256:20ee805752cb7cae660fbae89d7c6ea4a9c6372f16a6cb079ecf6c79f87ed8c9   32 minutes ago  62.2 MB
docker.io/grafana/grafana                  latest   sha256:4700307f41f249630f6d772638ad8d32c7d7e3ec86c324d449d5e21076991bb7   9 days ago      238 MB
registry.jumpserver.org/public/guacamole   1.0.0    sha256:6300349f264218e783cd2bd6f7863d356ac8d5ac05a62584cb4680af7ebec292   2 months ago    1.23 GB
docker.io/google/cadvisor                  latest   sha256:75f88e3ec333cbb410297e4f40297ac615e076b4a50aeeae49f287093ff01ab1   5 months ago    62.2 MB
docker.io/tutum/influxdb                   latest   sha256:c061e580819875fad91910841fd3fc53893524bbb9326a68b2470861633aebb1   19 months ago   290 MB
#可以对比下两个参数显示的不同信息

15、docker rmi

删除镜像

常用参数如下:

-f #强制删除

实例操作如下:

[root@docker ~]# docker images
REPOSITORY                                 TAG       IMAGE ID       CREATED         SIZE
newdocker_images                           v1.1.0    858cbd9ba687   6 seconds ago   62.2 MB
newdocker_images                           v1.0.0    20ee805752cb   36 minutes ago  62.2 MB
docker.io/grafana/grafana                  latest    4700307f41f2   9 days ago      238 MB
registry.jumpserver.org/public/guacamole   1.0.0     6300349f2642   2 months ago    1.23 GB
docker.io/google/cadvisor                  latest    75f88e3ec333   5 months ago    62.2 MB
docker.io/tutum/influxdb                   latest    c061e5808198   19 months ago   290 MB
[root@docker ~]# docker rmi 20ee805752cb
Untagged: newdocker_images:v1.0.0
Deleted: sha256:20ee805752cb7cae660fbae89d7c6ea4a9c6372f16a6cb079ecf6c79f87ed8c9
[root@docker ~]# docker images
REPOSITORY                                 TAG       IMAGE ID      CREATED          SIZE
newdocker_images                           v1.1.0    858cbd9ba687  39 seconds ago   62.2 MB
docker.io/grafana/grafana                  latest    4700307f41f2  9 days ago       238 MB
registry.jumpserver.org/public/guacamole   1.0.0     6300349f2642  2 months ago     1.23 GB
docker.io/google/cadvisor                  latest    75f88e3ec333  5 months ago     62.2 MB
docker.io/tutum/influxdb                   latest    c061e5808198  19 months ago    290 MB
#删除一个镜像

16、docker tag

标记本地镜像

实例操作如下:

[root@docker ~]# docker images
REPOSITORY           TAG        IMAGE ID            CREATED             SIZE
newdocker_images     v1.1.0     858cbd9ba687        39 seconds ago      62.2 MB
[root@docker ~]# docker tag newdocker_images:v1.1.0 newdocker_images:v2
[root@docker ~]# docker images
REPOSITORY           TAG        IMAGE ID            CREATED             SIZE
newdocker_images     v1.1.0     858cbd9ba687        4 minutes ago       62.2 MB
newdocker_images     v2         858cbd9ba687        4 minutes ago       62.2 MB
#从结果可以看出两个容器的ID是一样的,只是TAG改变了,类似于linux中文件与文件的硬链接一样,其两者的inode号相同。

17、docker build :

使用Dockerfile创建镜像

常用参数如下:

-f #指定要使用的Dockerfile路径
–label=[] #设置镜像使用的元数据;
-m #设置内存最大值
–memory-swap #设置Swap的最大值为内存+swap,"-1"表示不限swap
–no-cache #创建镜像的过程不使用缓存
–pull #尝试去更新镜像的新版本
-q #安静模式,成功后只输出镜像ID
–rm #设置镜像成功后删除中间容器
–ulimit #Ulimit配置
实例操作如下:

[root@docker ~]# docker build https://github.com/nginxinc/docker-nginx/

18、docker history

查看指定镜像的创建历史

常用参数如下:

-H #以可读的格式打印镜像大小和日期,默认为true;
–no-trunc #显示完整的提交记录;
-q #仅列出提交记录ID。
实例操作如下:

[root@docker ~]# docker history newdocker_images:v2
IMAGE             CREATED          CREATED BY                                    SIZE      COMMENT
858cbd9ba687    32 minutes ago   -storage_driver=influxdb -storage_driver_d...   0 B       add new images
75f88e3ec333    5 months ago     /bin/sh -c #(nop)  ENTRYPOINT ["/usr/bin/c...   0 B       
<missing>       5 months ago     /bin/sh -c #(nop)  EXPOSE 8080/tcp              0 B       
<missing>       5 months ago     /bin/sh -c #(nop) ADD file:e138bb5c0c12107...   26.5 MB   
<missing>       5 months ago     /bin/sh -c apk --no-cache add ca-certifica...   30.9 MB   
<missing>       5 months ago     /bin/sh -c #(nop)  ENV GLIBC_VERSION=2.23-r3    0 B       
<missing>       5 months ago     /bin/sh -c #(nop)  MAINTAINER dengnan@goog...   0 B       
<missing>       5 months ago     /bin/sh -c #(nop)  CMD ["/bin/sh"]              0 B       
<missing>       5 months ago     /bin/sh -c #(nop) ADD file:c05a199f603e2a9...   4.82 MB 

19、docker info

显示 Docker 系统信息,包括镜像和容器数

实例操作如下:

[root@docker ~]# docker info
Containers: 4
 Running: 3
 Paused: 0
 Stopped: 1
Images: 5
Server Version: 1.13.1
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: journald
Cgroup Driver: systemd
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: docker-runc runc
Default Runtime: docker-runc
Init Binary: /usr/libexec/docker/docker-init-current
containerd version:  (expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)
runc version: e9c345b3f906d5dc5e8100b05ce37073a811c74a (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)
init version: 5b117de7f824f3d3825737cf09581645abbe35d4 (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 seccomp
  WARNING: You're not using the default seccomp profile
  Profile: /etc/docker/seccomp.json
Kernel Version: 3.10.0-693.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 1
Total Memory: 7.64 GiB
Name: docker
ID: K7N6:CHF5:KAZP:QFDB:VYBP:IWMW:7VMV:L4TB:OJD2:SEZI:YRRR:4TJN
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Registries: docker.io (secure)

20、docker version

显示 Docker 版本信息

实例操作如下:

[root@docker ~]# docker version
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-63.git94f4240.el7.centos.x86_64
 Go version:      go1.9.4
 Git commit:      94f4240/1.13.1
 Built:           Fri May 18 15:44:33 2018
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-63.git94f4240.el7.centos.x86_64
 Go version:      go1.9.4
 Git commit:      94f4240/1.13.1
 Built:           Fri May 18 15:44:33 2018
 OS/Arch:         linux/amd64
 Experimental:    false

21.镜像

docker images         列出本地所有镜像

docker search(-s) nginx            搜索相关镜像 加上-s 参数 选出至少start数范围的镜像 

docker pull(-a)                     镜像名:版本号 拉取镜像,-a pull all

docker push 192.168.0.100:5000/ubuntu      推送镜像库到私有源

docker rmi(-f) 镜像名:版本号/镜像ID        删除镜像 (加上 -f 参数 强制删除)

docker rmi $(docker images -q)       删除所有镜像

docker rmi $(docker images | grep "none" | awk '{print $3}')         删除所有名字中带“none” 关键字的镜像

docker save docker.io/tomcat:7.0.77-jre7 >/root/mytomcat7.tar.gz         导出镜像

docker load < /root/mytomcat7.tar.gz           导入镜像

22.容器

docker ps 查看当前正在运行的容器

docker inspect name/image[name/image…] 查看详细

docker ps -a 查看所有容器的状态

docker start/stop(-t) id/name[name…] 启动/停止某个(多个)容器 -t 指定时间

docker kill (-s) name[name…] 强制中断 -s指定SIGINT信号类型,默认“kill”

docker restart (-t) name[name…] 重启 -t 指定时间

docker pause name 暂停  docker unpause name 继续

docker rm(-$) name[name…] 移除

-f  --force=false  强制移除运行中容器

-l  --link=false   移除指定链接,保留底层容器

-v  --volumes=false 移除容器关联卷

docker commit(-$)name 镜像名:版本号   提交指定容器为镜像

-a, --author=""     作者

-m, --message=""    简要说明

-p, --pause=true    暂停容器再提交

docker logs(-$) name  输出指定容器日志信息

-f  跟踪日志输出

-t  显示时间戳 类似 tail -f

–tail 在日志的末尾输出指定行数日志(默认所有日志)

docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行)

docker exec -ti id 启动一个伪终端以交互式的方式进入某个容器

(使用exit退出后容器不停止运行)

docker run(-$) IMAGE [COMMAND] [ARG…]    运行一个容器

-d         指定容器运行于前台还是后台,默认为false

-i         打开STDIN,用于控制台交互,默认为false

-t         分配tty设备,该可以支持终端登录,默认为false

-u, --user="" 指定容器的用户

-a, --attach=[] 登录容器(必须是以docker run -d启动的容器)

-w         指定容器的工作目录

-c        设置容器CPU权重,在CPU共享场景使用

-e, --env=[] 指定环境变量,容器中可以使用该环境变量

-m         指定容器的内存上限

-P, --publish-all=false 指定容器暴露的端口

-p, --publish=[] 指定容器暴露的端口

-h         指定容器的主机名

-v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录

–volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录

–cap-add=[]     添加权限

–cap-drop=[]    删除权限

–cidfile=""      运行容器后,在指定文件中写入容器PID值,监控系统用法

–cpuset=""      设置容器可使用哪些CPU,此参数可以用来容器独占CPU

–device=[]     添加主机设备给容器,相当于设备直通

–dns=[] 指定容器的dns服务器

–dns-search=[] 指定容器的dns搜索域名,写入到容器/etc/resolv.conf文件

–entrypoint="" 覆盖image的入口点

–env-file=[] 指定环境变量文件,文件格式为每行一个环境变量

–expose=[] 指定容器暴露的端口,即修改镜像的暴露端口

–link=[] 指定容器间的关联,使用其他容器的IP、env等信息

–lxc-conf=[] 指定容器的配置文件,只有在指定–exec-driver=lxc时使用

–name="" 指定容器名字,links特性需要使用名字

–net=“bridge” 容器网络设置:

                                    bridge 使用docker daemon指定的网桥       

                                    host    //容器使用主机的网络    

                                    container:NAME_or_ID  >

//使用其他容器的网路共享IP和PORT等网络资源

                                    none 容器使用自己的网络(类似--net=bridge)

–privileged=false 指定容器是否为特权容器,特权容器拥有所有的权限

–restart=“no” 指定容器停止后的重启策略:

                                     no:    容器退出时不重启    

                                     on-failure:   容器故障退出(返回值非零)时重启   

                                     always:   容器退出时总是重启   

–rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)

–sig-proxy=true 设置由代理接受并处理信号,SIGCHLD,SIGSTOP和SIGKILL不代

例:

docker run -i -t centos6.8 进入到默认的线程”/bin/bash”,直接进入控制台操作
docker run -i -t -d centos6.8 进入到默认的线程”/bin/bash”,后台运行
docker run -d --restart=always centos6.8  ping www.docker.com 带命令启动
docker run -d --name=server-dbcentos6.8-mysql /usr/bin/mysql_safe -d

容器的名称为server-db,同时激活了数据库mysql的后台线程
docker run -d --name=server-db -p 3306:3306 -v /server/mysql-data:/

mysql-datacentos6.8-mysql /usr/bin/mysql_safe –d

将宿主机的数据库目录/server/mysql-data挂载到server-db上
docker run -d --name=server-db -p 3306:3306 centos6.8-mysql 

/usr/bin/mysql_safe –d 服务器宿主机与容器端口映射并暴露
docker run -d --name=server-http --link=server-db  -p 8080:80centos6.8-httpd

/usr/bin/httpd --DFOREGROUND

映射服务器宿主机的8080端口,关联service-db 
docker run -it --rm  centos6.8  容器进程结束后,立马自动删除

23.docker option

–api-enable-cors=false 在远程API中启用CORS 头
    -b, --bridge=""   桥接网络 使用“none” 禁用容器网络
    --bip=""    网桥模式
    -d, --daemon=false 守护者模式
    -D, --debug=false debug 模式
    --dns=[]    强制 docker 使用指定 dns 服务器
    --dns-search=[]   强制 docker 使用指定 dns 搜索域
    -e, --exec-driver=“native” 强制 docker 运行时使用指定执行驱动器
    --fixed-cidr=""    固定IP的IPv4子网(例: 10.20.0.0/16)必须镶套在桥子网

中(由-b or --bip定义)
    -G, --group=“docker” 当在守护模式中运行时,组指向-H指定的unix套接字。

使用"“禁用组设置。
    -g, --graph=”/var/lib/docker" 容器运行的根目录路径
    -H, --host=[]   套接字绑定到守护模式。使用一个或多个tcp://主机:端

口,unix:///路径/到/套接字,fd://*或fd://socketfd.
    --icc=true    inter-container跨容器通信
    --insecure-registry=[] 使用指定的注册表启用不安全通信(没有HTTPS的证书验

证和启用HTTP回退)(例如,localhost:5000或10.20.0 /16)
    --ip=“0.0.0.0”    绑定容器端口时使用的IP地址
    --ip-forward=true 使用net.ipv4.ip_forward转发
    --ip-masq=true 使IP伪装成桥的IP范围
    --iptables=true   启用Docker添加iptables规则
    --mtu=0    设置容器网络mtu
    -p, --pidfile="/var/run/docker.pid" 指定守护进程pid文件位置
    --registry-mirror=[]   指定一个首选的镜像仓库(加速地址)
    -s, --storage-driver="" 强制 docker 运行时使用指定存储驱动
    --selinux-enabled=false 开启 selinux 支持
    --storage-opt=[]   设置存储驱动选项
    --tls=false     开启 tls
    --tlscacert="/root/.docker/ca.pem"  只信任提供CA签名的证书
    --tlscert="/root/.docker/cert.pem"   tls 证书文件位置
    --tlskey="/root/.docker/key.pem"    tls key 文件位置
    --tlsverify=false       使用 tls 并确认远程控制主机
    -v, --version=false      输出 docker 版本信息
24、容器的基本操作
在这里插入图片描述

$ docker container run nginx
$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
343fd4031609   nginx     "/docker-entrypoint.…"   6 seconds ago   Up 5 seconds   80/tcp    xenodochial_clarke
$ docker container ls
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
343fd4031609   nginx     "/docker-entrypoint.…"   14 seconds ago   Up 13 seconds   80/tcp    xenodochial_clarke
$ docker container stop 34
34
$ docker container ls -a
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS                      PORTS     NAMES
343fd4031609   nginx     "/docker-entrypoint.…"   29 seconds ago   Exited (0) 5 seconds ago              xenodochial_clarke
d9095daa8bcf   nginx     "/docker-entrypoint.…"   28 minutes ago   Exited (0) 28 minutes ago             suspicious_shamir
$ docker container rm 34
34
$ docker container ls -a
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS                      PORTS     NAMES
d9095daa8bcf   nginx     "/docker-entrypoint.…"   28 minutes ago   Exited (0) 28 minutes ago             suspicious_shamir

参考链接 :

四、容器的基本操作
https://www.jianshu.com/p/d2fb720f7fac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寰宇001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值