Docker最最最最基本的相关操作(不全,还会补充)

Docker的常用命令


  • 帮助命令

docker version		#显示Docker的信息
docker info			#显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help	#帮助命令

帮助文档的地址:https://docs.docker.com/reference/

  • 镜像命令


docker images 查看所有本机的主机上的镜像

[root@localhost wanghao-dm8]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    bf756fb1ae65   13 months ago   13.3kB

#解释
REPOSITORY 	镜像的仓库源
TAG						镜像的标签
IMAGE ID			镜像的id
CREATED			镜像的创建时间
SIZE					镜像的大小

#可选项
-a, --all 			# 列出所有的镜像
-q, --quiet			#只显示镜像的id

docker search 搜索镜像

[root@localhost wanghao-dm8]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10532     [OK]       

#可选项,通过收藏来过滤
--filter=STARS=3000 		# 搜索出来的镜像
[root@localhost wanghao-dm8]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   10532     [OK]       
mariadb   MariaDB is a community-developed fork of MyS…   3934      [OK]       
[root@localhost wanghao-dm8]# docker search mysql --filter=STARS=5000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   10532     [OK]      收藏大于3000

docker pull 下载镜像

# 下载镜像 docker pull 镜像名[:tag]
[root@localhost wanghao-dm8]# docker pull mysql
Using default tag: latest	# 如果不写tag,默认的就是latest
latest: Pulling from library/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
#指定版本下载
[root@localhost wanghao-dm8]# docker pull mysql:5.7
5.7: Pulling from library/mysql
a076a628af6f: Already exists 
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

在这里插入图片描述
docker rmi 删除镜像!

[root@localhost wanghao-dm8]# docker rmi -f 镜像id 	# 删除指定的容器
[root@localhost wanghao-dm8]# docker rmi -f 镜像id 镜像id 镜像id 镜像id 	# 删除多个镜像
[root@localhost wanghao-dm8]# docker rmi -f $(docker images -aq) # 删除全部的镜像
  • 容器命令


说明:我们有了镜像才可以创建容器,Linux,下载一个centos镜像来测试学习
docker pull centos

新建容器并启动

 docker run [可选参数] image
 # 参数说明
 --name="Name"		容器名字		tomcat01 tomcat02,用来区分容器
 -d							后台方式运行
 -it							使用交互方式运行,进入容器查看内容
 -p							指定容器的端口	-p 8080:8080
 		-p ip:主机端口:容器端口
 		-p 主机端口:容器端口(常用)
 		-p 容器端口
 		容器端口
 -P							随机指定端口
 
 # 测试,启动并进入容器
[root@localhost wanghao-dm8]# docker run -it centos /bin/bash
[root@284d7a32115f /]# ls		# 查看容器内的CentOS,基础版本,很多命令是不完善的!
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

#从容器中退回主机
[root@284d7a32115f ~]# exit 
exit
[root@localhost wanghao-dm8]# cd /
[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

列出所有的容器

#docker ps 命令
			# 列出当前正在运行的容器
-a 		# 列出当前正在运行的容器+带出历史运行过的容器
-n=? 	# 显示最近创建的容器
-q			# 只显示容器的编号

[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED             STATUS                         PORTS     NAMES
284d7a32115f   centos         "/bin/bash"   7 minutes ago       Exited (127) 2 minutes ago               peaceful_perlman
ae8308363f7e   bf756fb1ae65   "/hello"      About an hour ago   Exited (0) About an hour ago             upbeat_liskov
56948b3b1115   bf756fb1ae65   "/hello"      About an hour ago   Exited (0) About an hour ago             unruffled_proskuriakova
3cae5dbac390   bf756fb1ae65   "/hello"      About an hour ago   Exited (0) About an hour ago             awesome_golick

退出容器

exit		# 直接退出容器
Ctrl + P + Q		# 容器不停止直接退出[root@localhost /]# docker run -it centos /bin/bash
[root@30881832ba31 /]# [root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
30881832ba31   centos    "/bin/bash"   17 seconds ago   Up 15 seconds             elegant_tu

删除容器

docker rm 容器id			# 删除指定的容器,不能删除正在运行的容器,如果要强制删除rm -f

[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED             STATUS                         PORTS     NAMES
30881832ba31   centos         "/bin/bash"   8 minutes ago       Up 8 minutes                             elegant_tu
284d7a32115f   centos         "/bin/bash"   22 minutes ago      Exited (127) 18 minutes ago              peaceful_perlman
ae8308363f7e   bf756fb1ae65   "/hello"      About an hour ago   Exited (0) About an hour ago             upbeat_liskov
56948b3b1115   bf756fb1ae65   "/hello"      About an hour ago   Exited (0) About an hour ago             unruffled_proskuriakova
3cae5dbac390   bf756fb1ae65   "/hello"      About an hour ago   Exited (0) About an hour ago             awesome_golick
[root@localhost /]# docker rm 284d7a32115f
284d7a32115f
[root@localhost /]# docker rm 30881832ba31
Error response from daemon: You cannot remove a running container 30881832ba31c69b3a4c1c99b3b3917f483fc59700ba877cbd60d65e0c3cdb64. Stop the container before attempting removal or force remove
[root@localhost /]# docker rm -f 30881832ba31
30881832ba31

docker rm -f $(docker ps -aq)		# 删除所有的容器

[root@localhost /]# docker rm -f $(docker ps -aq)
ae8308363f7e
56948b3b1115
3cae5dbac390

docker ps -a -q | xargs docker rm		# 删除所有的容器(Linux常用的管道命令)

启动和停止容器的操作

docker start 容器id			# 启动容器

[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED              STATUS                          PORTS     NAMES
415f2e9ac9f2   centos        "/bin/bash"   About a minute ago   Up About a minute                         quizzical_perlman
beb3aa4382b1   centos        "/bin/bash"   About a minute ago   Exited (0) About a minute ago             fervent_jones
a307ae552e33   hello-world   "/hello"      4 minutes ago        Exited (0) 4 minutes ago                  festive_euclid
[root@localhost /]# docker start beb3aa4382b1
beb3aa4382b1
[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED         STATUS                     PORTS     NAMES
415f2e9ac9f2   centos        "/bin/bash"   2 minutes ago   Up 2 minutes                         quizzical_perlman
beb3aa4382b1   centos        "/bin/bash"   3 minutes ago   Up 6 seconds                         fervent_jones
a307ae552e33   hello-world   "/hello"      5 minutes ago   Exited (0) 5 minutes ago             festive_euclid

docker restart 容器id		# 重启容器

[root@localhost /]# docker restart a307ae552e33
a307ae552e33
[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED         STATUS                      PORTS     NAMES
415f2e9ac9f2   centos        "/bin/bash"   6 minutes ago   Up 6 minutes                          quizzical_perlman
beb3aa4382b1   centos        "/bin/bash"   6 minutes ago   Up 3 minutes                          fervent_jones
a307ae552e33   hello-world   "/hello"      9 minutes ago   Exited (0) 16 seconds ago             festive_euclid

docker stop 容器id		# 停止当前正在运行的容器

[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
415f2e9ac9f2   centos    "/bin/bash"   8 minutes ago   Up 8 minutes             quizzical_perlman
beb3aa4382b1   centos    "/bin/bash"   8 minutes ago   Up 5 minutes             fervent_jones
[root@localhost /]# docker stop beb3aa4382b1
beb3aa4382b1
[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED          STATUS                     PORTS     NAMES
415f2e9ac9f2   centos        "/bin/bash"   8 minutes ago    Up 8 minutes                         quizzical_perlman
beb3aa4382b1   centos        "/bin/bash"   8 minutes ago    Exited (0) 4 seconds ago             fervent_jones
a307ae552e33   hello-world   "/hello"      11 minutes ago   Exited (0) 2 minutes ago             festive_euclid

docker kill 容器id			# 强制停止当前容器(只能kill当前正在运行的容器,STATUS为running)

[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED          STATUS                     PORTS     NAMES
415f2e9ac9f2   centos        "/bin/bash"   8 minutes ago    Up 8 minutes                         quizzical_perlman
beb3aa4382b1   centos        "/bin/bash"   8 minutes ago    Exited (0) 4 seconds ago             fervent_jones
a307ae552e33   hello-world   "/hello"      11 minutes ago   Exited (0) 2 minutes ago             festive_euclid
[root@localhost /]# docker kill 415f2e9ac9f2
415f2e9ac9f2
[root@localhost /]# docker kill beb3aa4382b1
Error response from daemon: Cannot kill container: beb3aa4382b1: Container beb3aa4382b13cb83ac40cd41fb3ff2e6a1bb3673369aabf7aebe1456f1f9bc2 is not running

常用其他命令


后台启动容器

# 命令 docker run -d 镜像名 !

# 问题docker ps,发现 centos 停止了
# 常见的坑:docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

[root@localhost /]# docker run -d centos
4c8c0f14ff9aceef9894bb0b79845c7954bdd3a6b954e8448e0ced4deb2f3a81
[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED          STATUS                      PORTS     NAMES
4c8c0f14ff9a   centos        "/bin/bash"   18 seconds ago   Exited (0) 17 seconds ago             peaceful_hofstadter
3f439b843615   centos        "/bin/bash"   2 hours ago      Exited (0) 2 hours ago                dazzling_galois
415f2e9ac9f2   centos        "/bin/bash"   5 hours ago      Exited (137) 5 hours ago              quizzical_perlman
beb3aa4382b1   centos        "/bin/bash"   5 hours ago      Exited (0) 5 hours ago                fervent_jones
a307ae552e33   hello-world   "/hello"      5 hours ago      Exited (0) 5 hours ago                festive_euclid

查看日志命令

docker logs -f -t --tail 10
[root@localhost /]# docker logs --help

Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
  -n, --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
2583ef8123ae   centos    "/bin/bash"   2 minutes ago   Up 2 minutes             friendly_keller
[root@localhost /]# docker logs -f -t --tail 10 2583ef8123ae
2021-02-22T12:07:34.673150592Z [root@2583ef8123ae /]# ls
2021-02-22T12:07:34.677676416Z bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
2021-02-22T12:07:39.740698968Z [root@2583ef8123ae /]# 
2021-02-22T12:07:42.769436538Z Display all 633 possibilities? (y or n)
^C

# 伪造一个控制台来整可以显示的日志
# docker run -d centos /bin/sh -c "shell程序" 		#采用后台启动的方式来运行一个容器,使用sh终端控制台来运行下面的shell程序 
## 补充 docker run -d imageName [这个地方写的是]
[root@localhost /]# docker run -d centos /bin/sh -c "while true;do echo wanghao;sleep 1;done"
e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb
[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
e5b5e95de4b3   centos    "/bin/sh -c 'while t…"   6 seconds ago   Up 4 seconds             funny_mestorf
2583ef8123ae   centos    "/bin/bash"              9 minutes ago   Up 9 minutes             friendly_keller

# 显示日志
-tf							# 显示日志并且follow,并且format
--tail number		# 要显示的日志条数
[root@localhost /]# docker logs -f -t --tail 10 e5b5e95de4b3
2021-02-22T12:20:12.443279299Z wanghao
2021-02-22T12:20:13.447022774Z wanghao
2021-02-22T12:20:14.449002616Z wanghao

查看容器中进程信息 ps

#top 命令 docker top 容器id
[root@localhost /]# docker top e5b5e95de4b3
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                21584               21565               0                   20:16               ?                   00:00:00            /bin/sh -c while true;do echo wanghao;sleep 1;done
root                22759               21584               0                   20:30               ?                   00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1

查看镜像源数据相关信息

# 命令
	docker inspect 容器id
[root@localhost /]# docker inspect e5b5e95de4b3
[
    {
        "Id": "e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb",		# 容器id的全部显示
        "Created": "2021-02-22T12:16:38.919218004Z",		# 镜像创建的时间
        "Path": "/bin/sh",		# 默认的bash控制台
        "Args": [				
            "-c",
            "while true;do echo wanghao;sleep 1;done"
        ],			# 运行的参数,Linux的运行的命令
        "State": {
            "Status": "running",			# 运行状态的
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 21584,					# CPU的PID状态
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-02-22T12:16:39.770773751Z",		# 开始运行的时间
            "FinishedAt": "0001-01-01T00:00:00Z"					# 结束运行的时间
        },
        "Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
        "ResolvConfPath": "/var/lib/docker/containers/e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb/hostname",
        "HostsPath": "/var/lib/docker/containers/e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb/hosts",
        "LogPath": "/var/lib/docker/containers/e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb/e5b5e95de4b3283341b810b51856a1cb5cb7d1d94c1ba5fa9c35251d2a26d1fb-json.log",
        "Name": "/funny_mestorf",
        "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,
            "CgroupnsMode": "host",
            "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/985a013fa5cdd4834f587587180137a781560c2031468ecbe335ec492de36144-init/diff:/var/lib/docker/overlay2/db145e993f4c7a080cb0ad062a1954a5579372153681327eab071706fecdbbc6/diff",
                "MergedDir": "/var/lib/docker/overlay2/985a013fa5cdd4834f587587180137a781560c2031468ecbe335ec492de36144/merged",
                "UpperDir": "/var/lib/docker/overlay2/985a013fa5cdd4834f587587180137a781560c2031468ecbe335ec492de36144/diff",
                "WorkDir": "/var/lib/docker/overlay2/985a013fa5cdd4834f587587180137a781560c2031468ecbe335ec492de36144/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "e5b5e95de4b3",				# 主机名字
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],						# 对应的环境变量
            "Cmd": [
                "/bin/sh",
                "-c",
                "while true;do echo wanghao;sleep 1;done"
            ],				# CMD的控制台命令
            "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": "5297f32d2013f82341bca0dc78f0d662f34512763d50332b140968ff0ec8252e",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/5297f32d2013",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "503831670ec11f01df130671797c341fd6486d7ac50528285872054f8f67f60e",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.3",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:03",
            "Networks": {
                "bridge": {					# 当前使用的是桥接的网卡
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "1fa963db8eb137c8658caf569fd5c086fa948a3729e856780a8276a4beb26969",
                    "EndpointID": "503831670ec11f01df130671797c341fd6486d7ac50528285872054f8f67f60e",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]

进入当前正在运行的容器

 # 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
 # 命令 方式一
 	docker exec -it 容器id bashShell
 
[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED       STATUS       PORTS     NAMES
e5b5e95de4b3   centos    "/bin/sh -c 'while t…"   3 hours ago   Up 3 hours             funny_mestorf
2583ef8123ae   centos    "/bin/bash"              3 hours ago   Up 3 hours             friendly_keller
[root@localhost /]# docker exec -it e5b5e95de4b3 /bin/bash
[root@e5b5e95de4b3 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@e5b5e95de4b3 /]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 12:16 ?        00:00:03 /bin/sh -c while true;do echo wanghao;sleep 1;done
root       9373      0  0 14:52 pts/0    00:00:00 /bin/bash
root       9395      1  0 14:52 ?        00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
root       9396   9373  0 14:52 pts/0    00:00:00 ps -ef
# 方式二 命令
	docker attach 容器id
# 测试
[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED       STATUS       PORTS     NAMES
e5b5e95de4b3   centos    "/bin/sh -c 'while t…"   3 hours ago   Up 3 hours             funny_mestorf
2583ef8123ae   centos    "/bin/bash"              3 hours ago   Up 3 hours             friendly_keller
[root@localhost /]# docker attach e5b5e95de4b3
wanghao
wanghao

docker exec [-it表示的是可选参数的交互模式] 容器id [Linux命令] # 进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach 容器id # 进入容器正在执行的终端,不会启动新的进程!

从容器中拷贝到主机

# docker cp 容器id:容器中的路径 主机中的路径
# 进入docker容器内部
[root@localhost wanghao-dm8]# docker attach 2583ef8123ae
[root@2583ef8123ae /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@2583ef8123ae /]# cd ~
[root@2583ef8123ae ~]# ls
anaconda-ks.cfg  anaconda-post.log  original-ks.cfg
# 在容器中新建一个文件
[root@2583ef8123ae ~]# touch test.java
[root@2583ef8123ae ~]# ls
anaconda-ks.cfg  anaconda-post.log  original-ks.cfg  test.java
# 退出容器
[root@2583ef8123ae ~]# exit
[root@localhost wanghao-dm8]# docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED       STATUS                      PORTS     NAMES
e5b5e95de4b3   centos        "/bin/sh -c 'while t…"   3 hours ago   Up 3 hours                            funny_mestorf
2583ef8123ae   centos        "/bin/bash"              3 hours ago   Exited (0) 13 seconds ago             friendly_keller
4c8c0f14ff9a   centos        "/bin/bash"              3 hours ago   Exited (0) 3 hours ago                peaceful_hofstadter
3f439b843615   centos        "/bin/bash"              5 hours ago   Exited (0) 5 hours ago                dazzling_galois
415f2e9ac9f2   centos        "/bin/bash"              8 hours ago   Exited (137) 8 hours ago              quizzical_perlman
beb3aa4382b1   centos        "/bin/bash"              8 hours ago   Exited (0) 8 hours ago                fervent_jones
a307ae552e33   hello-world   "/hello"                 9 hours ago   Exited (0) 8 hours ago                festive_euclid
# 将这个文件拷贝出来到主机上
[root@localhost wanghao-dm8]# docker cp 2583ef8123ae:/root/test.java /home/wanghao-dm8/
[root@localhost wanghao-dm8]# ls
test.java  公共  模板  视频  图片  文档  下载  音乐  桌面


# 拷贝是一个手动过程,备份之类的不建议使用

在这里插入图片描述

 # 摘取自 docker --help
  attach      Attach local standard input, output, and error streams 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 to files or directories 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

版权:狂神Docker上课笔记+部分原创,之后还会填充

混入相关的Linux操作系统知识食用更佳,当然本人是小白一枚,欢迎指教!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值