Docker+NETCore系列文章(三、Docker常用命令)

Docker常用命令

1.帮助命令

#1、查看docker版本
docker version 

#2、显示docker系统信息,包括镜像和容器
docker info

#3、帮助命令  如dockers images --help 查看镜像帮助命令
docker “命令” --help 

2.镜像命令

查看本机镜像 docker images

#1、查看本机上的镜像		docker images
[root@VM-0-6-centos ~]# docker images
REPOSITORY                             TAG               IMAGE ID       CREATED         SIZE
hello-world                            latest            bf756fb1ae65   13 months ago   13.3kB

#解析
REPOSITORY	#镜像仓库
TAG			#镜像标签
IMAGE ID 	#镜像id
CREATED		#创建时间(创建了多久)
SIZE		#镜像大小

#2、查看docker images帮助命令
[root@VM-0-6-centos ~]# docker images --help

Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]

List images

Options:
  -a, --all             #列出所有的镜像
      --digests         #显示摘要
  -f, --filter filter   #根据提供的条件过滤输出
      --format string   #使用Go模板打印漂亮的镜像
      --no-trunc        #不截断输出
  -q, --quiet           #只显示镜像id

#3、查看镜像所有信息  docker images -a 
[root@xgy ~]# docker images -a
REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
hello-world                            latest              bf756fb1ae65        13 months ago       13.3kB

#4、只显示镜像id	docker images -q
[root@xgy ~]# docker images -q
bf756fb1ae65 

搜索 docker search

#1、搜索镜像  docker search 镜像名
[root@xgy ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10428               [OK]                
mariadb                           MariaDB is a community-developed fork of MyS…   3870                [OK]                
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   763                 [OK]   
.....(省略部分)
jelastic/mysql                    An image of the MySQL database server mainta…   1                   [OK]      
#解析:
NAME 			镜像名
DESCRIPTION		镜像描述信息
STARS			镜像star数
OFFICIAL		官方
AUTOMATED		自动化


#2、查看docker search帮助命令
[root@xgy ~]# docker search --help

Usage:	docker search [OPTIONS] TERM

Search the Docker Hub for images

Options:
  -f, --filter filter   #根据提供的条件过滤输出
      --format string   #使用Go模板的漂亮打印搜索
      --limit int       #最大搜索结果数(默认值25)
      --no-trunc        #不截断输出
      
#3、使用--filter命令过滤“star”数超过3000的mysql镜像	 docker search mysql --filter=STARS=3000
[root@xgy ~]# docker search mysql --filter=STARS=3000
NAME                DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql               MySQL is a widely used, open-source relation…   10428               [OK]                
mariadb             MariaDB is a community-developed fork of MyS…   3870                [OK]                

获取镜像 docker pull

#1、下载镜像  docker pull  默认获取最新版本(latest)
[root@xgy ~]# docker pull mysql
Using default tag: latest	#tag版本标签
latest: Pulling from library/mysql	#从镜像仓库中获取mysql镜像
a076a628af6f: Pull complete 		#分层下载,docker image核心  联合文件系统
f6c208f3f991: Pull complete 
88a9455a9165: Pull complete 
406c9b8427c6: Pull complete 
7c88599c0b25: Pull complete 
25b5c6debdaf: Pull complete 
43a5816f1617: Pull complete 
1a8c919e89bf: Pull complete 
9f3cf4bd1a07: Pull complete 
80539cea118d: Pull complete 
201b3cad54ce: Pull complete 
944ba37e1c06: Pull complete 
Digest: sha256:feada149cb8ff54eade1336da7c1d080c4a1c7ed82b5e320efb5beebed85ae8c	#签名信息
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest		#真实存储地址

#注:
docker pull mysql	等价于		docker pull docker.io/library/mysql:latest

#2、下载指定版本镜像	docker pull 镜像名[:tag]	
#docker pull mysql:5.7  下载mysql 5.7
[root@xgy ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
a076a628af6f: Already exists 	#Already exists表示该资源已存在,原因是docker镜像是联合文件系统,相同的文件资源是共用									的,故只要文件资源存在,就不会再去下载
f6c208f3f991: Already exists 
88a9455a9165: Already exists 
406c9b8427c6: Already exists 
7c88599c0b25: Already exists 
25b5c6debdaf: Already exists 
43a5816f1617: Already exists 
1831ac1245f4: Pull complete 
37677b8c1f79: Pull complete 
27e4ac3b0f6e: Pull complete 
7227baa8c445: Pull complete 
Digest: sha256:b3d1eff023f698cd433695c9506171f0d08a8f92a0c8063c1a4d9db9a55808df
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

删除镜像

#1、删除指定镜像	docker rmi -f 镜像id		例:删除mysql5.7镜像
#另:删除多个镜像	docker rmi -f 镜像id 镜像id	镜像id
#1.1查看镜像列表
[root@xgy ~]# docker images
REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
mysql                                  5.7                 a70d36bc331a        9 days ago          449MB
mysql                                  latest              c8562eaf9d81        9 days ago          546MB
hello-world                            latest              bf756fb1ae65        13 months ago       13.3kB
#1.2指定删除的镜像
[root@xgy ~]# docker rmi -f a70d36bc331a
Untagged: mysql:5.7
Untagged: mysql@sha256:b3d1eff023f698cd433695c9506171f0d08a8f92a0c8063c1a4d9db9a55808df
Deleted: sha256:a70d36bc331a13d297f882d3d63137d24b804f29fa67158c40ad91d5050c39c5
Deleted: sha256:50c77bf7bcddd1f1d97789d80ac2404eec22c860c104e858620d2a2e321f0ef7
Deleted: sha256:14244329b83dfc8982398ee4104a548385652d2bffb957798ff86a419013efd6
Deleted: sha256:6d990477f90af28473eb601a9bca22253f6381e053c5a8edda0a4f027e124a3c
Deleted: sha256:ee0449796df204071589162fc16f8d65586312a40c68d1ba156c93c56f5e5ce8
#1.3查看镜像列表
[root@xgy ~]# docker images
REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
mysql                                  latest              c8562eaf9d81        9 days ago          546MB
hello-world                            latest              bf756fb1ae65        13 months ago       13.3kB

#2、递归删除所有镜像		docker rmi -f $(docker images -aq)
#解析: -aq表示所有id
[root@xgy ~]# docker rmi -f $(docker images -aq)
Untagged: mysql:latest
Untagged: mysql@sha256:feada149cb8ff54eade1336da7c1d080c4a1c7ed82b5e320efb5beebed85ae8c
...(省略部分输出)
Untagged: hello-world:latest
Untagged: hello-world@sha256:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec
Deleted: sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6b

#2.1查看镜像列表是否还有数据
[root@xgy ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

3.容器命令

注:有了镜像才可以创建容器!

下载一个centos镜像进行测试学习;

#1、下载centos镜像	docker pull centos
[root@xgy ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
7a0437f04f83: Pull complete 
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
3.1新建容器并启动
#1、docker run [可选参数]  image

#参数说明
--name="容器名"	#容器名,如tomcat01、tomcat02
-d				  #挂在在后台运行
-it				  #使用交互方式运行,进入容器
-p				  #指定容器的端口	如 -p 8080:8080
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口(常用)
	-p 容器端口
	-p (系统随机指定端口)
	
#2进入容器
#2.1  docker images 查看容器列表
[root@xgy ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              300e315adb2f        7 weeks ago         209MB

#2.2  docker run -it centos /bin/bash 进入centos容器内部
[root@xgy ~]# docker run -it centos /bin/bash

#2.3  使用ls命令查看centos容器内部有哪些文件
#注:此时root@后面的id由xgy变为412224f83b5d
[root@412224f83b5d /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@412224f83b5d /]# 

#2.4退出容器,回到主机
[root@412224f83b5d /]# exit
exit
#2.5 使用ls命令查看主机有哪些文件
[root@xgy /]# ls
app  boot  docker-test  home  lib64  mnt                                       netcoretest  proc  run   srv  tmp  var
bin  dev   etc          lib   media  mysql-community-release-el7-5.noarch.rpm  opt          root  sbin  sys  usr
3.2查看容器列表
#docker ps 常用命令
		  #	列出当前正在运行的容器		如:docker ps
	-a	  #	列出当前正在运行的容器+历史运行过的容器	如:docker ps -a
	-n=?  #显示最近创建的容器  ?填写的是数值,如:docker ps -a -n=1
	-q	  #只显示容器id

#1、查询正在运行的容器
[root@xgy /]# docker ps
CONTAINER ID    IMAGE      COMMAND        CREATED        STATUS                   PORTS         NAMES

#2、查询所有容器
[root@xgy /]# docker ps -a
CONTAINER ID    IMAGE      COMMAND        CREATED        STATUS                   PORTS         NAMES
412224f83b5d   centos    "/bin/bash"    9 minutes ago   Exited (0) 6 minutes ago             naughty_wescoff

#3、显示最近创建的容器
[root@xgy /]# docker ps -a -n=1
CONTAINER ID    IMAGE      COMMAND        CREATED        STATUS                   PORTS         NAMES
412224f83b5d   centos    "/bin/bash"    9 minutes ago   Exited (0) 6 minutes ago             naughty_wescoff

#4、显示所有容器id
[root@xgy /]# docker ps -aq
412224f83b5d
3.3退出容器
#1、退出并停止当前正在运行的容器
exit 

#2、保持容器运行,并退出容器
ctrl+p+q
#2.1进入容器
[root@xgy /]# docker run -it centos /bin/bash
#2.2敲击键盘的	ctrl+p+q  
#可看到后面加了一串[root@xgy /]#,此时输出docker ps,能获取到主容器中的容器信息
[root@b480cb03a1b7 /]# [root@xgy /]# docker ps 
CONTAINER ID    IMAGE      COMMAND        CREATED        STATUS                   PORTS         NAMES
412224f83b5d   centos    "/bin/bash"    9 minutes ago   Exited (0) 6 minutes ago             naughty_wescoff
#此时看到界面由“[root@b480cb03a1b7 /]# [root@xgy /]#”
#变为“[root@xgy /]# ”,原因其实是界面上刚才没有自动换行导致的
[root@xgy /]# 
3.4删除容器
docker rm 容器id		#删除指定容器  注:如果容器正在运行,但还是想强制删除,则加上-f指令
docker rm -f $(docker ps -aq)	#删除所有容器
docker ps -a -q|xargs docker rm 	#删除所有容器
#1、删除指定容器	docker rm 容器id
#1.1查询所有容器 
[root@xgy ~]# docker ps -a
CONTAINER ID        IMAGE        COMMAND       CREATED      STATUS         PORTS               NAMES
285a33c568fc        hello-world         "/hello"            10 hours ago        Exited (0) 10 hours ago                       confident_tesla
b480cb03a1b7        centos              "/bin/bash"         10 hours ago        Up 10 hours                                   agitated_edison
0cb7d5d9a324        centos              "/bin/bash/"        10 hours ago        Created                                       optimistic_goldstine
412224f83b5d        centos              "/bin/bash"         10 hours ago        Exited (0) 10 hours ago                       naughty_wescoff
#1.2 根据1.1中的容器id删除hello-world容器	
[root@xgy ~]# docker rm 285a33c568fc
285a33c568fc

#1.3查询所有镜像,可看到hello-world容器已被移除
[root@xgy ~]# docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
b480cb03a1b7        centos              "/bin/bash"         10 hours ago        Up 10 hours                                   agitated_edison
0cb7d5d9a324        centos              "/bin/bash/"        10 hours ago        Created                                       optimistic_goldstine
412224f83b5d        centos              "/bin/bash"         10 hours ago        Exited (0) 10 hours ago                       naughty_wescoff

#2、删除所有容器	docker rm -f $(docker ps -aq)
[root@xgy ~]# docker rm -f $(docker ps -aq)
b480cb03a1b7
0cb7d5d9a324
412224f83b5d
3.5启动和停止容器
docker start 容器id		#启动容器
docker restart 容器id		#重启容器
docker stop 容器id		#停止容器
docker kill	容器id		#强制停止当前容器

#1、创建、运行容器,并进入centos容器内
[root@xgy ~]# docker run -it centos /bin/bash

#2、退出centos容器
[root@771f03d614f7 /]# exit
exit

#3、列举运行中的容器	退出容器后容器不再运行,故使用docker ps命令查不到任何数据
[root@xgy ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

#3、启动1中创建的容器
[root@xgy ~]# docker start 771f03d614f7
771f03d614f7

#4、列举运行中的容器	可看到当前容器正在运行
[root@xgy ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
771f03d614f7        centos              "/bin/bash"         42 seconds ago      Up 3 seconds                            funny_fermi

#5、停止1中创建的容器
[root@xgy ~]# docker stop 771f03d614f7
771f03d614f7

#6、列举运行中的容器	因容器已停止,故使用docker ps命令查不到任何数据
[root@xgy ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

4 其他常用命令

4.1后台启动容器
#命令	docker run -d 镜像名
#注:加上-it(docker run -d -it 镜像名) 命令则变为前台应用
#1、后台启动容器
[root@xgy ~]# docker run -d centos 
ae985a36bbc38e7f39c3d81d3087772ec99ba55decb6d198b9ecfe9c2e319d0b

#2、docker ps发现centos容器已经停止了
#解析(注):docker容器使用后台运行时,就必须要有一个前台进程,docker发现没有前台应用,就会自动停止;
#例:nginx容器启动后,发现自己没有提供服务,就会立刻自动停止,会认为没有程序了;
[root@xgy ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

4.2查看日志
docker logs 容器id	#
[root@xgy ~]# docker logs --help

Usage:	docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        #显示提供给日志的额外详细信息
  -f, --follow         #跟踪日志输出
      --since string   #显示时间戳(例如2013-01-02T13:23:37)或相对时间戳(例如42m,42分钟)后的日志
      --tail string    #从日志末尾显示的行数(默认为“all”)
  -t, --timestamps     #显示时间戳
      --until string   #在时间戳(例如2013-01-02T13:23:37)或相对时间戳(例如42m,42分钟)之前显示日志
4.3查看容器进程信息
docker top 容器id	#查看容器进程信息
#1、查询所有镜像
root@xgy ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8576df3b7e59        centos              "/bin/bash"         10 minutes ago      Up 10 minutes                           wonderful_joliot
#2、查询容器中进程id  docker top 容器id
[root@xgy ~]# docker top 8576df3b7e59
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                3791                3775                0                   21:53               pts/0               00:00:00            /bin/bash

4.4查看容器元数据
#命令
docker inspect 容器id   #查看容器元数据
[root@xgy ~]# docker inspect 8576df3b7e59
[
    {
        "Id": "8576df3b7e5921cd480f6fcfce617c56afcc7e8cd1ca3def3f21b29574c2f244",
        "Created": "2021-01-28T13:53:09.621336959Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 3791,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-01-28T13:53:10.180995403Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
        "ResolvConfPath": "/var/lib/docker/containers/8576df3b7e5921cd480f6fcfce617c56afcc7e8cd1ca3def3f21b29574c2f244/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/8576df3b7e5921cd480f6fcfce617c56afcc7e8cd1ca3def3f21b29574c2f244/hostname",
        "HostsPath": "/var/lib/docker/containers/8576df3b7e5921cd480f6fcfce617c56afcc7e8cd1ca3def3f21b29574c2f244/hosts",
        "LogPath": "/var/lib/docker/containers/8576df3b7e5921cd480f6fcfce617c56afcc7e8cd1ca3def3f21b29574c2f244/8576df3b7e5921cd480f6fcfce617c56afcc7e8cd1ca3def3f21b29574c2f244-json.log",
        "Name": "/wonderful_joliot",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Capabilities": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/ed7876add37aa7c772982f7a4d9eeb5e124a89cfaebe4e2fa9c33b67ec14048c-init/diff:/var/lib/docker/overlay2/d7d20a95a5dbb4c260f6666d925ebcd69f3083e1c7e06420e6bb93d28787e34a/diff",
                "MergedDir": "/var/lib/docker/overlay2/ed7876add37aa7c772982f7a4d9eeb5e124a89cfaebe4e2fa9c33b67ec14048c/merged",
                "UpperDir": "/var/lib/docker/overlay2/ed7876add37aa7c772982f7a4d9eeb5e124a89cfaebe4e2fa9c33b67ec14048c/diff",
                "WorkDir": "/var/lib/docker/overlay2/ed7876add37aa7c772982f7a4d9eeb5e124a89cfaebe4e2fa9c33b67ec14048c/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "8576df3b7e59",
            "Domainname": "",
            "User": "",
            "AttachStdin": true,
            "AttachStdout": true,
            "AttachStderr": true,
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": true,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "centos",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20201204",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "4a32e043f3f620e19989c10b70dfbda4cd47b70fafa3f3306c9824556d60bb95",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/4a32e043f3f6",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "209c0ed60a44232e30fc000284891704f061d7ae2eba9405a3f1d818c993fab8",
            "Gateway": "172.18.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.18.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:12:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "4119a34918bbf3395bb3012d6388eb590d0af482daeef0e740ab84011777b76f",
                    "EndpointID": "209c0ed60a44232e30fc000284891704f061d7ae2eba9405a3f1d818c993fab8",
                    "Gateway": "172.18.0.1",
                    "IPAddress": "172.18.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:12:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]
4.5进入当前正在运行的容器
#我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置;

#命令
docker exec -it	容器id /bin/bash

#方式一
#1、获取所有容器
[root@xgy ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8576df3b7e59        centos              "/bin/bash"         39 minutes ago      Up 39 minutes                           wonderful_joliot

#2、交互模式运行容器
[root@xgy ~]# docker exec -it 8576df3b7e59 /bin/bash
[root@8576df3b7e59 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var


[root@8576df3b7e59 /]# ps -ef
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 13:53 pts/0    00:00:00 /bin/bash
root          14       0  1 14:33 pts/1    00:00:00 /bin/bash
root          28      14  0 14:33 pts/1    00:00:00 ps -ef

#方式二
docker attach 容器id
#运行容器
[root@xgy ~]# docker attach 8576df3b7e59

#docker exec	#进入容器后开启一个新的终端,可以在里面操作(常用) 在运行的容器中执行命令
#docker	attach	#进入容器,不会开启新的进程;
4.6从容器内拷贝文件到主机上
#命令
docker cp 容器id:/子容器目录/文件 /主机容器目录
#1、列举正在运行的容器列表
[root@xgy ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
68ff63460678        centos              "/bin/bash"         39 minutes ago      Up 39 minutes                           wonderful_joliot

#2、进入容器
[root@xgy ~]# docker attach 68ff63460678

#3、进入centos容器中的home目录创建一个test.java文件
[root@68ff63460678 /]# cd /home
[root@68ff63460678 home]# ls
[root@68ff63460678 home]# touch test.java
[root@68ff63460678 home]# ls  
test.java

#4、退出centos容器
[root@68ff63460678 home]# exit
exit

#5、使用 docker cp 容器id:/子容器目录/文件 /主机目录
[root@xgy home]# docker cp 68ff63460678:/home/test.java /home

#6、使用ls命令可看到子容器中的test.java被复制到了主机中
[root@xgy home]# ls
gitea  lxqapp  test.java

#拷贝是一个手动过程。后面讲使用-v 卷技术,可以实现

5.常用命令图

在这里插入图片描述

赞赏

​ 如果您觉得文章还不错,那就请作者喝杯咖啡吧!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值