Docker学习(一)——docker常用命令

一、常用dokcer命令汇总

docker常用命令结构图如下:

docker命令结构图.jpg

二、docker镜像相关命令

  1. 列出已安装的镜像:
docker images
//或者
docker image ls 
  1. 保存已安装的镜像:
docker save 镜像名:tag -o 镜像名.tar 
//或者
docker save 镜像名:tag > 镜像名.tar
  1. 从本地包安装镜像:
docker load -i 镜像名.tar
//或者
docker load < 镜像名.tar
  1. 获取镜像的详细信息:
docker inspect 镜像名:tag //返回json格式的数据;
docker inspect -f {{".Size"}}  镜像名:tag //返回数据中指定的某一项内容;
  1. 删除镜像:
dokcer rmi 镜像名:tag  
//或者
docker image rm 镜像名:tag
//加 -f 或者 -force 强制删除镜像;
//加 -no-prune 不要删除未带标签的父镜像;
  1. 清理残存的、没有使用的镜像文件:
docker image prune  
#加 -f 或者 -force 强行删除文件,无需弹出确认;
#加 -a 或者 -all 删除所有没有用的镜像,不仅仅是临时文件;

三、docker容器相关命令

  1. 创建容器:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]  
// -i, --interactive=false: 以交互模式运行容器,通常与 -t 同时使用;
// -t, --tty=false: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
// -d, --detach=false: 后台运行容器,并返回容器ID;
// -p, --publish=[]: 指定端口映射,格式为:主机(宿主)端口:容器端口;
// --name="容器名": 为容器指定一个名称;
// -h , --hostname="host名": 指定容器的hostname;
// -e , --env=[]: 设置环境变量;
// --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
// -v, --volume : 绑定一个卷;
// --privileged=false: 指定容器是否为特权容器,特权容器拥有所有的capabilities;
// --restart=no:指定容器停止后的重启策略;
//           no:容器退出时不重启;
//           on-failure:容器故障退出(返回值非零)时重启;
//           always:容器退出时总是重启(一般选择此参数);
// --rm=false: 指定容器停止后自动删除容器,不能以docker run -d启动的容器;

eg:创建mysql容器

docker run -p 3306:3306 --name mysql \
-v /home/mysql/conf:/etc/mysql \
-v /home/mysql/logs:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=root密码 \
-d mysql:5.7
  1. 获取容器日志:
docker logs [OPTIONS] CONTAINER
// -f: 跟踪日志输出;
// --tail:仅列出最新N条容器日志;
  1. 删除容器:
docker rm [OPTIONS] CONTAINER [CONTAINER...] 
// -f:通过 SIGKILL 信号强制删除一个运行中的容器;
// -l:移除容器间的网络连接,而非容器本身;
// -v:删除与容器关联的卷;
  1. 列出容器:
docker ps [OPTIONS]
// -a:显示所有的容器,包括未运行的;
// -q:只显示容器编号;
  1. 启动、停止、重启容器:
docker start CONTAINER    //启动一个或多个已经被停止的容器
docker stop CONTAINER    //停止一个运行中的容器
docker restart CONTAINER    //重启容器
  1. 进入容器:
docker exec -it CONTAINER bash 
//或者
docker exec -it CONTAINER /bin/bash 
//或者
docker exec -it CONTAINER sh 
  1. 获取容器元数据:
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
// -f:指定返回值的模板文件
// -s:显示总的文件大小
// --type:为指定类型返回JSON
  1. 复制文件:
//宿主机文件复制到容器内
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
//容器内文件复制到宿主机
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH

// -L:保持源目标中的链接
  1. 清理数据卷:
docker volume prune

ps:如果安装docker时忘记设置docker镜像仓库地址,则需要在/etc/docker目录下新增或者修改daemon.json文件,样例文件如下:

{
  "registry-mirrors": ["https://kuamavit.mirror.aliyuncs.com", "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn"],
  "max-concurrent-downloads": 10,
  "storage-driver": "overlay2",
  "graph": "/data/docker",
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    }
}

然后保存退出,重启docker
systemctl restart docker
参考文章

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容