docker 的使用

docek的具体使用方法

1.下载docker镜像(centos6.6版本或centos7.6)
docker pull centos:centos6.6(仓库:标签)
docker pull centos:centos7.6.1810

2.查看本地镜像 docker images 或 docker image ls
删除镜像 docker rmi image_name 镜像名称就是 仓库:标签
镜像重命名 docker tag image_id REPOSITORY:TAG(仓库:标签)

3.运行镜像,启动容器
docker run -it -d -p 80:80 -v /web:/www --privileged=true --name=container_name image_id/name /sbin/init

-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d 是以Daemon模式运行。
-p 80:80 是将本地80端口映射到容器的80端口,现在可以在本地使用http://localhost访问。
-v /web:/www 是将本地的/web目录挂载到容器的/www(容器配置的web目录)目录下。
--name 容器名称
image_name 是要运行的镜像名称或ID也可以
--privileged=true 使用特权模式不然容器里无法使用systemctl启动服务
/sbin/init 是容器运行后的系统初始化操作,主要用于启动nginx,php-fpm,mysql服务

4.进入容器exec命令
docker exec -it +container_id/name /bin/bash

5.exit:退出容器
docker ps:查看正在运行的容器
docker ps -a:查看所有的容器

5.docker start/restart/stop/rm container_id/name:启动/重启/关闭/删除容器
docker rename old_containername new_containername 容器重命名
docker stop $(docker ps -aq) 关闭所有容器

7.把容器打包成镜像 docker commit +container_id +image_name

8.镜像的备份(save)和还原(load)
docker save image_id > ../backup.tar > 可以用 -o 替代
docker load < ../backup.tar < 可以用 -i 替代

9.容器的导出(export)和导入(import)
docker export container_id > ../container.tar
cat my_container.tar |docker import - image_name:tag 导入容器为镜像

10.导出 export 与 保存 save 的区别

(1).export导出的镜像文件大小 小于 save保存的镜像

(2).export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag <LAYER ID> <IMAGE NAME>);而save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)

11. docker system prune //自动清理空间,参考下面:

该指令默认会清除所有如下资源:
已停止的容器(container)
未被任何容器所使用的卷(volume)
未被任何容器所关联的网络(network)
所有悬空镜像(image)。
该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
添加 -a 或 --all 参数后,可以一并清除所有未使用的镜像和悬空镜像。
可以添加 -f 或 --force 参数用以忽略相关告警确认信息。
指令结尾处会显示总计清理释放的空间大小。

12.docker system df //可以查看docker所占的硬盘大小
docker ps -s //可以查看容器大小

13.将docker容器中的文件拷贝到服务器本地
docker cp container_id/name:源路径 目的路径
示例:
docker cp abcd1234:/app/data.txt /home/