Docker帮助启动类命令
- Docker有些未配置需要切换 root 用户、配置了就不需要
启动Docker
systemctl start docker
停止Docker
systemctl stop docker
重启Docker
systemctl restart docker
查看Docker状态
systemctl status docker
开机启动
systemctl enable docker
查看docker概要消息
docker info
查看docker总体帮助文档
docker --help
查看docker命令帮助文档
docker 具体命令 --help
Docker镜像命令
查看Docker镜像命令
// 查看所有镜像
docker images
// 查看所有镜像、包含历史镜像
docker images -a
// 只显示镜像 ID
docker images -q
REPOSITORY | TAG | IMAGE ID | CREATE | SIZE |
---|---|---|---|---|
镜像仓库源 | 镜像标签 | 镜像ID | 创建时间 | 镜像大小 |
hello-world | latest | 93feghrds | 5 weeks ago | 1.848kb |
搜索Docker镜像命令
// 索引镜像名称
docker search [OPTIONS] 镜像名字
// 镜像限制、只列出N个镜像、默认25个
docker search --limit 5 redis
[root@Hadoop101 amrcloud]# docker search redis
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
redis Redis is an open source key-value store that… 11277 [OK]
bitnami/redis Bitnami Redis Docker Image 229 [OK]
bitnami/redis-sentinel Bitnami Docker Image for Redis Sentinel 39 [OK]
bitnami/redis-cluster 34
拉取Docker镜像命令
// 如果没有[TAG]就是最新版
docker pull 镜像名字:[TAG]
docker pull redis:6.0.8
查看镜像/容器/数据卷所占空间
// 查看镜像/容器/数据卷所占空间
[root@Hadoop101 amrcloud]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 1 1 13.26kB 0B (0%)
Containers 2 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
删除某个镜像
// 删除单个镜像
docker rmi -f 镜像ID
// 删除多个镜像
docker rmi -f 镜像名1:TAG 镜像名2:TAG
// 删除全部
docker rmi -f $(docker images -qa)
Docker容器命令
新建+启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG....]
--name= "容器的新名字" 指定容器名称
-d: 后台运行容器并返回容器ID、也即启动守护式容器(后台运行)
-i: 以交互模式运行容器、通常与-t同时使用
-t:为容器重新分配一个伪输入终端、通常与-i同时使用
也即启动交互式容器
-P:随机端口映射、大写P
-p:指定端口映射、小写p
docker命令启动实例
[root@Hadoop101 amrcloud]# docker run -it ubuntu /bin/bash
root@63adf3e54580:/# ls
bin dev home lib32 libx32 mnt proc run srv tmp var
boot etc lib lib64 media opt root sbin sys usr
如果要退出
exit
root@63adf3e54580:/# exit
exit
[root@Hadoop101 amrcloud]#
查看容器运行实例
// 显示当前所有正在运行容器+历史运行过的
docker ps -a
// 显示最近创建的容器
docker ps -l
// 显示最近n个创建的容器
docker ps -n
// 静默模式、只显示容器编号
docker ps -q
[root@Hadoop101 amrcloud]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
63adf3e54580 ubuntu "/bin/bash" 29 minutes ago Exited (127) 28 minutes ago hardcore_keldysh
e2eb4cf36d09 hello-world "/hello" 3 weeks ago Exited (0) 3 weeks ago blissful_ritchie
f083630b1d90 hello-world "/hello" 3 weeks ago Exited (0) 3 weeks ago reverent_jackson
退出容器
// run 进去的的容器、exit退出、容器停止
exit
// 容器退出不停止
ctrl + p + q
容器进入区别
// 交互式启动
docker run -it redis:6.0.8
// 后台交互式启动、推荐
docker run -d redis:6.0.8
// 进入后台容器
docker attach 容器ID
docker exec -it 容器ID /bin/bash
attach直接进入容器启动命令的终端、不会启动新的进程、用exit退出、**会导致容器的停止**
exec 是在容器中打开新的终端、并且可以启动新的进程、**不会导致容器停止**
启动已停止运行的容器
docker start 容器ID或容器名称
docker restart 容器ID或容器名称
docker stop 容器ID或容器名称
docker kill 容器ID或容器名称
删除容器
docker ps
// 删除容器、必须是停止了
docker rm 容器ID
// 强制删除、运行也可删除
docker rm -f 容器ID
容器日志查询
docker logs 容器ID
从容器内部拷贝文件到主机
docker cp 容器ID:容器目录 目标路径
[root@Hadoop101 home]# docker cp 22b08d0b2f68:/home/a.txt /home
[root@Hadoop101 home]# ll
总用量 4
drwx------. 18 amrcloud amrcloud 4096 8月 28 19:53 amrcloud
-rw-r--r--. 1 root root 0 8月 28 22:02 a.txt
[root@Hadoop101 home]#
从容器导入导出
// 导出成tar包
docker export 容器ID > abc.tar.gz
// 将原来image删除、在重新导入
cat abc.tar | docker import - amrcloud/ubuntu:3.7
容器命令提交(副本)
// 先更新我们的包管理工具
apt-get update
// 然后安装我们需要的vim
apt-get install vim
docker commit 提交容器副本使之成为一个新的镜像
docker commit -m="提交描述消息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
docker commit -m="add vim" -a="zzyy" ef5454rg5r amrcloud/myredis:1.1
容器卷命令
[root@Hadoop101 myregistry]# docker run -d -p 5000:5000 --privileged=true -v /opt/apps/myregistry:/tmp/myDockerData registry
7d96d0065b797373057e1d1f1ab999a97b23e374b79bef9a0506f7836c4cf137
[root@Hadoop101 myregistry]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7d96d0065b79 registry "/entrypoint.sh /etc…" 4 seconds ago Up 2 seconds 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp crazy_torvalds
同步宿主机与本地数据
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器目录 镜像
docker run -d -p 5000:5000 --privileged=true -v /opt/apps/myregistry:/tmp/myRegistryData registry
// 挂载成功
"Mounts": [
{
"Type": "bind",
"Source": "/opt/apps/myregistry",
"Destination": "/tmp/myRegistryData",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "volume",
"Name": "9b72eddd3395e84ca352fae80a42d46e6d4a90656e1a1eb8f5401c0e94a74b11",
"Source": "/var/lib/docker/volumes/9b72eddd3395e84ca352fae80a42d46e6d4a90656e1a1eb8f5401c0e94a74b11/_data",
"Destination": "/var/lib/registry",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]
只能读取
docker run -d -p 5000:5000 --privileged=true -v /opt/apps/myregistry:/tmp/myRegistryData:ro registry
容器卷继承
docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu