docker的常用命令
1.基础命令
1.1 启动docker
systemctl start docker
1.2 停止docker
systemctl stop docker
1.3 重启docker
systemctl restart docker
1.4 查看docker状态
systemctl status docker
1.5 开机启动docker
systemctl enable docker
1.6 查看docker概要信息
docker info
1.7 查看docker总体帮助文档
docker --help
1.8 查看docker某命令帮助文档
docker xxx --help
1.9 docker 删除虚悬镜像
# 命令用于删除未使用的映像。
# 如果指定了-a,还将删除任何容器未引用的所有映像。
docker image prune
2.docker镜像操作命令
2.1 查看docker镜像列表
docker images
查看本地所有镜像:
docker images -a
显示结果:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest ba6acccedd29 15 months ago 72.8MB
hello-world latest feb5d9fea6a5 16 months ago 13.3kB
redis 6.0.8 16ecd2772934 2 years ago 104MB
2.2 查找docker镜像
docker search hellow-world
限制搜索5个:
docker search hellow-world --limit 5
2.3 查看镜像容器所占的空间
docker system df
显示结果:
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 3 1 177MB 177MB (99%)
Containers 2 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
2.4 删除docker镜像
docker rmi hellow-world
3.docker容器操作命令
3.1 容器列表
docker ps -a
-a 所有容器
不加-a 所有在运行的容器
3.2 创建交互式docker容器
docker run -it --name=masechoUbuntu ubuntu /bin/bash
-i 交互式
-t 终端
--name=XXX 给容器指定名称
运行之后会自动创建容器,并进入交互式命令终端
3.3 进入容器交互式命令退出
exit 退出容器交互式命令并停止容器 ctrl+p+q 退出容器交互式命令不停止容器
3.4 创建守护式docker容器
docker run -d --name=masechoRedis redis redis /bin/bash
3.5 启动容器
docker start 容器id或者容器名
3.6 停止容器
docker stop 容器id或者容器名
3.7 强制停止容器
docker kill 容器id或者容器名
3.8 删除已经停止的容器
docker rm 容器id
3.9 查看容器日志
docker logs 容器id
3.10 查看容器内运行的进程
docker top 容器id
3.11 查看容器内部细节
docker inspect 容器id
3.12 进入正在运行的容器并以命令行交互
exec进入容器交互式命令,启动新的进程,exit退出容器并不会停止运行(常用)
docker exec -it 容器id /bin/bash
attach进入容器交互式命令,不会启动新的进程,exit退出容器会停止运行(不常用)
docker attach 容器id
3.13 拷贝docker容器内的文件到当前主机
docker cp 容器id:容器内文件路径 当前主机目录
例:
docker cp 81f6f5b4f694:/tmp/a.txt /usr/masecho-file/a.txt
3.14 导出docker整个容器映像文件到当前主机
docker export 容器id > 文件名
例:
docker export 81f6f5b4f694 > backup.tar
3.15 导入docker整个容器的映像文件到当前docker images
cat 文件名 | docker import - 映像命名
例:
cat backup.tar | docker import - masecho/ubuntu:1.0
运行之后查看docker映像列表docker images -a(已经增加了masecho/ubuntu:1.0):
REPOSITORY TAG IMAGE ID CREATED SIZE
masecho/ubuntu 1.0 a2b23d8dbed8 30 seconds ago 72.8MB
3.16 docker提交新的映像
例:
在ubuntu中安装vim:
apt-get update
apt-get -y install vim
vim test.txt
docker commit -m="提交注释" -a="作者" 容器id 目标镜像名:版本号
docker commit -m="test" -a="masecho" bd403f5a1e61 masecho/ubuntu:1.1
提交结果:
REPOSITORY TAG IMAGE ID CREATED SIZE
masecho/ubuntu 1.1 d5c6121c4d7e About a minute ago 182MB
masecho/ubuntu 1.0 a2b23d8dbed8 About an hour ago 72.8MB
3.17 docker提交映像到阿里云仓库
1. 登录阿里云Docker Registry
$ docker login --username=3978*****@qq.com registry.cn-hongkong.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在访问凭证页面修改凭证密码。
2. 从Registry中拉取镜像
$ docker pull registry.cn-hongkong.aliyuncs.com/masechodockerhub/masechoubuntu:[镜像版本号]
3. 将镜像推送到Registry
$ docker login --username=3978*****@qq.com registry.cn-hongkong.aliyuncs.com
$ docker tag [ImageId] registry.cn-hongkong.aliyuncs.com/masechodockerhub/masechoubuntu:[镜像版本号]
$ docker push registry.cn-hongkong.aliyuncs.com/masechodockerhub/masechoubuntu:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
4. 选择合适的镜像仓库地址
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hongkong.aliyuncs.com 作为Registry的域名登录。
5. 示例
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB
$ docker tag 37bb9c63c8b2 registry-vpc.cn-hongkong.aliyuncs.com/acs/agent:0.7-dfb6816
使用 "docker push" 命令将该镜像推送至远程。
$ docker push registry-vpc.cn-hongkong.aliyuncs.com/acs/agent:0.7-dfb6816