Docker 的简单使用(常用命令)
-
镜像
-
镜像管理
-
镜像列表 docker images
-
删除镜像 docker image rm imageid/imagename:tagname
-
根据Dockerfile创建镜像 docker build . 参数详情可参考: docker build
-
获取 容器 / 镜像的元数据 docker inspect [OPTIONS] NAME|ID [NAME|ID...]
-
给镜像重命名(打标签) docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
-
将指定镜像保存成 tar 归档文件 docker save [OPTIONS] IMAGE [IMAGE...]
-
导入使用 docker save 命令导出的镜像 docker load [OPTIONS]
-
从归档文件中创建镜像 docker import 与 docker export 相对应
-
经历多次 docker commit 后镜像过大的优化办法,可参考:docker容器commit的镜像越来越大怎么办?酱紫试试
#进入容器内部后 #查看各个目录体积 du -h -d 1 # 在根目录下把需要的东西打包: tar --exclude=base_img.tar -cvf base_img.tar . # 退出容器 # 将打包的文件copy到宿主机 docker cp [容器id]:/base_img.tar . # 导入容器 cat base_img.tar|docker import - base_img # 查看容器情况 # 直观上体积减少了 docker images # history,只有一个记录:Imported from - docker history [新镜像id]
-
-
运行镜像-->启动容器
docker run 参考地址:docker run
例:
docker run -dit
-p 80:80 -p 443:443 -p 3306:3306 -p 9000:9000
-v /xxx/:/www
--name=name --privileged=true imagename:tagname /bin/bash- -t: 在新容器内指定一个伪终端或终端
- -i: 允许你对容器内的标准输入 (STDIN) 进行交互
- -d: 后台模式运行
- -P: 随机端口映射,容器内部端口随机映射到主机的端口
- -p:端口映射,格式为:主机(宿主)端口:容器端口
- -v:目录映射,如上例所示,将本地目录 /xxx 映射到 容器内部的 /www
- --privileged=true container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。
- --net
- --net=bridge 这个是默认值,连接到默认的网桥。
- --net=host 该模式下的 Docker 容器会和 host 宿主机共享同一个网络 namespace,Docker Container的 IP 地址即为宿主机 eth0 的 IP 地址
- --net=container:NAME_or_ID 相关联的两个容器之间不存在网络隔离,而这两个容器又与宿主机以及除此之外其他的容器存在网络隔离
- --net=none 不为 Docker 容器构造任何网络环境
-
-
容器
-
启动/关闭 容器 docker start / stop
-
容器列表 docker ps
-
查看容器中运行的进程信息 docker top
-
列出指定的容器的端口映射 docker port
-
进入容器
- 连接到正在运行中的容器 docker attach [OPTIONS] CONTAINER 退出的时候,容器也会跟着退出
- docker exec [OPTIONS] CONTAINER COMMAND [ARG...] 退出的时候,容器不受影响
- docker exec -it containerId /bin/bash
-
从容器创建一个新的镜像 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
- -a :提交的镜像作者;
- -c :使用Dockerfile指令来创建镜像;
- -m :提交时的说明文字;
- -p :在commit时,将容器暂停
-
容器与主机之间的数据拷贝
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
-
容器删除 docker rm
-
-
镜像库
-
登录登出镜像库
docker login [OPTIONS] [SERVER] docker logout [OPTIONS] [SERVER] // -u :用户名 // -p :密码 docker login -u 用户名 -p 密码
-
从镜像仓库中拉取或者更新指定镜像 docker pull
docker pull [OPTIONS] NAME[:TAG|@DIGEST] // -a :拉取所有 tagged 镜像 // --disable-content-trust :忽略镜像的校验,默认开启
-
从Docker Hub查找镜像
docker search [OPTIONS] TERM // --automated :只列出 automated build类型的镜像; // --no-trunc :显示完整的镜像描述; // -f <过滤条件>:列出收藏数不小于指定值的镜像。
-
将本地的镜像上传到镜像仓库
docker push [OPTIONS] NAME[:TAG] // --disable-content-trust :忽略镜像的校验,默认开启 // 推送前需要先使用docker login 登录私有镜像库 // 如果要将镜像推送到私有镜像库的话,需要先使用 docker tag 现将镜像重命名 例: // docker tag imageId xxxxx.com/lin_zone/lnmp:v1
-
注:整理不易,如需转载请注明出处:https://www.cnblogs.com/zhuchenglin/p/15102860.html