Docker 常用命令
https://www.yuque.com/leifengyang/oncloud/ox16bw
1、帮助启动类
- 启动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
2、 镜像命令
1、搜索镜像
- docker search [OPTIONS] 镜像名
- docker search --limit 5 redis
–limit : 只列出N个镜像,默认25个
2、下载镜像
- docker pull 镜像名[:TAG]
- docker pull ubuntu
没有TAG就是最新版,等价于 ubuntu:latest- docker pull mysql:5.7
3、查看本地镜像
- docker images
REPOSITORY:镜像的仓库源,同一仓库源可以有多个TAG版本
TAG:镜像的标签版本号
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小- docker images -a
列出本地所有的镜像(含历史映像层)- docker images -q
只显示镜像ID。
4、查看镜像/容器/数据卷所占的空间
- docker system df
5、删除镜像
- docker rmi -f 镜像ID
删除单个镜像- docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除多个镜像- docker rmi -f $(docker images -qa)
删除全部
6、生成镜像
docker build -t imagename:v1.0 ./dockerfile_path
3、 容器命令
3.1 创建容器 docker run
- docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
OPTIONS说明:
–name=“容器新名字” :为容器指定一个名称;
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互);
-it: 启动交互式容器,前台命令行
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
以交互模式启动一个容器
- docker run -it centos /bin/bash
使用镜像centos:latest,在容器内执行/bin/bash命令。
以后台模式启动一个容器
- docker run -d redis
- docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
- docker run -d -p 6379:6379 redis:6.0.8
- docker run --name=mynginx -d --restart=always -p 88:80 nginx
容器应用开机自启启动
- docker update 容器id/名字 --restart=always
3.2 查看容器 docker ps
- docker ps [OPTIONS]
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
查看当前正在运行的容器
- docker ps
查看所有容器
- docker ps -a
其他命令
查看容器日志
- docker logs 容器ID
查看容器内运行的进程
- docker top 容器ID
查看容器内部细节
- docker inspect 容器ID
3.3 退出容器 exit
- exit
run进去容器,exit退出,容器停止- ctrl+p+q
run进去容器,ctrl+p+q退出,容器不停止
3.4 进入容器 docker exec
进入正在运行的容器并以命令行交互
- docker exec -it 容器ID /bin/bash
exec 是在容器中打开新的终端,并且可以启动新的进程。
exit退出后,不会导致容器的停止。
推荐使用 docker exec 命令。
- docker attach -it 容器ID /bin/bash
attach 直接进入容器启动命令的终端,不会启动新的进程。
用exit退出后,会导致容器的停止。(用 ctrl+p+q退出,容器不停止。)
3.5 启动容器 docker start / restart
启动已停止运行的容器
- docker start 容器ID或者容器名
重启容器
- docker restart 容器ID或者容器名
3.6 停止容器 docker stop / kill
- docker stop 容器ID或者容器名
- docker kill 容器ID或容器名
强制停止容器
3.7 删除容器 docker rm
删除已停止的容器
- docker rm 容器ID
一次性删除多个容器实例
- docker rm -f $(docker ps -a -q)
- docker ps -a -q | xargs docker rm
4、容器拷贝 docker cp
从容器内拷贝文件到主机上
- docker cp 容器ID:容器内路径目的主机路径
- docker cp 16877214d2ee:/test.txt /tmp/2.txt
5、导出容器 docker export
- docker export 容器ID > 文件名.tar
- docker export 16877214d2ee > fan.tar.gz
将容器导为一个tar归档文件- cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
将tar包中内容创建一个新的文件系统导入为镜像
6、容器共享
6.1 提交容器 docker commit
提交容器实例成为一个新的镜像
- docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
- docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
- docker commit -a “rice_van” -m “首页变化” 341d81f7504f ricevannginx:v1.0
- docker commit -m=“add vim cmd” -a=“ricefan” 5fa45c3687b7 fan/myubuntu:1.5
6.2 镜像打包 docker save
将镜像保存成压缩包
- docker save -o abc.tar ricenignx:v1.0
- ls
发送到另一台服务器
- scp abc.tar root@129.198.186.134:/root//
另一台服务器加载这个镜像
- docker load -i abc.tar
6.3 容器上传 docker push
- docker tag local-image:tagname new-repo:tagname
- docker push new-repo:tagname
把旧镜像的名字,改成仓库要求的新版名字
- docker tag guignginx:v1.0 leifengyang/guignginx:v1.0
登录到docker hub
- docker login
- docker logout(推送完成镜像后退出)
推送
- docker push leifengyang/guignginx:v1.0
别的机器下载
- docker pull leifengyang/guignginx:v1.0
- 将本地容器上传到云服务:提交到华为容器镜像服务(使用客户端上传本地镜像)
7、实操附录
1、交互模式运行容器
2、停止/重启容器
3、exec 进入正在运行的容器
4、attach 进入正在运行的容器
5、文件复制功能
6、容器导入导出