docker

docker

Docker 镜像和容器命令行接口
​ 1.是一个客户端daemon交互工具
​ 2.有超过30个子命令

Linux 安装 Docker

安装条件:3.10+

$ uname -r
3.10.0-1127.18.2.el7.x86_64

$ yum install docker

$ docker -v
Docker version 1.13.1, build 64e9980/1.13.1

$ systemctl start docker

子命令列表

attach
​ 进入容器

build
​ 使用 Dockerfile 构建【镜像】

commit
​ 创建新的【镜像】,依据容器的配置

cp
​ 在容器和本地文件系统之间复制“文件”或“目录”

diff
​ 检查【容器】文件系统的更改

exec
​ 运行一个命令在指定的【容器】中

history
​ 显示【镜像】的历史

images
​ 查看当前管理的【镜像】

info

inspect
​ 查看【容器】、【镜像】的底层信息

kill
​ 关闭正在运行中的【容器】

logs
​ 抓取【容器】日志

pause
​ 暂停【容器】中的全部进程

port
​ 查看端口映射规则

ps
​ 【容器】列表显示

pull
​ 拉取【镜像】

push
​ 推送【镜像】

rm
​ 删除【容器(s)】

rmi
​ 删除【镜像(s)】

run
​ 创建【容器】

save
​ 【镜像】打包

search
​ 搜索【镜像】在 Docker Index

stats
​ 【容器】的资源消耗统计

tag
​ 查看【容器】的运行进程

unpause
​ 运行【容器】中的全部进程

version
​ 同时显示客户端和服务器端的版本信息

镜像操作

$ docker search mysql
$ docker pull mysql
$ docker pull mysql:5.7
$ docker pull mysql:8.0.21
$ docker images
$ docker rmi mysql:latest
$ docker images
$ docker pull mysql:5.6

过滤镜像查看:docker images FILTER_NAME

$ docker images redis
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/redis     5                   f60d84d4d72c        12 days ago         98.3 MB
docker.io/redis     5.0                 f60d84d4d72c        12 days ago         98.3 MB
docker.io/redis     5.0.9               f60d84d4d72c        12 days ago         98.3 MB
docker.io/redis     6                   1319b1eaa0b7        12 days ago         104 MB
docker.io/redis     6.0                 1319b1eaa0b7        12 days ago         104 MB
docker.io/redis     6.0.6               1319b1eaa0b7        12 days ago         104 MB

$ docker images nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     1.19                4bb46517cac3        3 days ago          133 MB
docker.io/nginx     1.19.2              4bb46517cac3        3 days ago          133 MB
docker.io/nginx     1.18                2ad6b739fe1c        12 days ago         132 MB
docker.io/nginx     1.18.0              2ad6b739fe1c        12 days ago         132 MB

容器操作

# 启动、停止、重启、重命名、删除
$ docker start 0baf758cad2b
$ docker stop 0baf758cad2b
$ docker restart 0baf758cad2b
$ docker rename tomcat8 tomcat81

# 既可以使用原来的名字,也可以使用 id
$ docker rename 85688b57f3be tomcat8_1
$ docker rm 0baf758cad2b

过滤容器查看
-f, --filter=[ ]
Conditions:
exited=
name=
id=

# 使用 id,需要开头匹配
$ docker ps -f id=32
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
32b9d61be770        tomcat:8            "catalina.sh run"   57 minutes ago      Up 55 minutes       0.0.0.0:8080->8080/tcp   tomcat

# 使用 name,随便匹配
$ docker ps -f name=ngi
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
4ded510ebc72        nginx:1.18          "/docker-entrypoin..."   29 minutes ago      Up 29 minutes       0.0.0.0:80->80/tcp   nginx

$ docker ps -f name=m
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
a371819b1ca7        mysql:5.7           "docker-entrypoint..."   55 minutes ago      Up 53 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   db_m57
32b9d61be770        tomcat:8            "catalina.sh run"        About an hour ago   Up 58 minutes       0.0.0.0:8080->8080/tcp              tomcat

连接到容器

Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
下边例子中 cat 是个【容器】

# 连接到容器 cat
$ docker exec -it cat /bin/bash

# 也可以不适用全路径
$ docker exec -it cat bash

保存&恢复

保存

保存容器到文件:先保存容器为 image,再把 image 保存为 tar 文件
step 1: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
step 2: docker save [OPTIONS] IMAGE [IMAGE…]

可以一次保存一个 image,也可以同时保存多个 image

$ docker commit tomcat smz_api:1.0
$ docker save -o smz_api-1.0.tar smz_api:1.0

# 同时保存两个 
$ docker save -o smz_api.tar smz_api:1.0 smz_api:1.1
恢复
$ docker load -i smz_api.tar 
6d2c73f809cf: Loading layer [==================================================>] 92.67 kB/92.67 kB
Loaded image: smz_api:1.0
7488759c9ad4: Loading layer [==================================================>] 92.67 kB/92.67 kB
Loaded image: smz_api:1.1

$ docker images smz_api
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
smz_api             1.1                 9e801ae0f209        27 minutes ago      530 MB
smz_api             1.0                 066a74ff90c2        27 minutes ago      530 MB

恢复后,镜像 id 保持不变

你可能感兴趣的:(Docker,docker)