栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker-常用命令

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker-常用命令

参数解析
输出Hello World参数
# docker run ubuntu /bin/echo "Hello World" 
docker: Docker 的二进制执行文件。
run: 与前面的 docker 组合来运行一个容器。
ubuntu:指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
/bin/echo "Hello world": 在启动的容器里执行的命令
运行交互式的容器参数
# docker run -i -t ubuntu /bin/bash
root@0123ce188bd8:/#      //此时已进入一个ubuntu系统的容器,
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
-t: 在新容器内指定一个伪终端或终端。
//尝试在容器中运行命令 cat /proc/version和ls分别查看当前系统的版本信息和当前目录下的文件列表
//运行 exit 命令或者使用 CTRL+D 来退出容器
运行一个web应用参数
# docker run -d -P training/webapp python app.py
-d:让容器在后台运行。
-P:将容器内部使用的网络端口随机映射到我们使用的主机上。

docker ps 输出详情

ConTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
容器 ID使用的镜像启动容器时运行的命令容器的创建时间容器状态容器的端口信息和使用的连接类型(tcpudp)自动分配的容器名称

镜像列表选项

REPOSITORYTAGIMAGE IDCREATEDSIZE
镜像的仓库源镜像的标签镜像ID镜像创建时间镜像大小

查找镜像选项

NAMEDEscriptIONOFFICIALstarsAUTOMATED
镜像仓库源的名称镜像的描述是否 docker 官方发布类似 Github 里面的 star,表示点赞、喜欢的意思自动构建
构建镜像时的Dockerfiles文件
# cat Dockerfiles
FROM ubuntu //指定哪个镜像源 (必须写)
MAINTAINER      Fisher "fisher@sudops.com" //维护者
RUN     echo 'we are running some # of cool things' 
// RUN 指令告诉docker在镜像内执行命令 安装了什么……
然后,使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像
# docker build -t image1:v1.0 /home/docker/
-t:指定要创建的目标文件镜像名
image1:镜像名称
v1.0 :镜像标签
/home/docker/:Dockerfile 文件所在目录
网络端口映射两种方式
# docker run -d -P training/webapp python app.py
# docker run -d -p 5000:5000 training/webapp python app.py
-P :是容器内部端口随机映射到主机的端口。
-p : 是容器内部端口绑定到指定的主机端口。

指定容器绑定的网络地址
# docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py 
//以通过访问 127.0.0.1:5001 来访问容器的 5000 端口
以上默认绑定tcp端口 

# docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py 
//端口后面加上 /udp,绑定udp端口
创建一个新的Docker网络
# docker network create -d bridge test-net
-d:参数指定 Docker 网络类型,有 bridge、overlay。
其中 overlay 网络类型用于 Swarm mode。
手动指定容器设置 DNS
# docker run -it --rm -h host_ubuntu  --dns=114.114.114.114 --dns-search=test.com ubuntu
参数说明:
--rm:容器退出时自动清理容器内部的文件系统。
-h HOSTNAME 或者 --hostname=HOSTNAME: 设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts。
--dns=IP_ADDRESS: 添加 DNS 服务器到容器的 /etc/resolv.conf 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名。
--dns-search=DOMAIN: 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 host.example.com。

注意:如果在容器启动时没有指定 --dns 和 --dns-search,Docker 会默认用宿主主机上的 /etc/resolv.conf 来配置容器的 DNS。
查询信息
  1. 查询正在运行的容器: docker ps

  2. 查看所有的容器命令:docker ps -a
    查询最后一次创建的容器:docker ps -l
    查看容器名称:docker ps -l

  3. 查看容器内的标准输出:docker logs <容器 ID> docker logs -f bf08b7f2cd89 -f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出

  4. web 应用

  • 查看容器的端口映射:
    已知创建的 web 应用容器 ID 为 bf08b7f2cd89 名字为 wizardly_chandrasekhar
    使用 docker port bf08b7f2cd89 或 docker port wizardly_chandrasekhar 来查看容器端口的映射情况
  • 查看WEB应用程序容器的进程: docker top wizardly_chandrasekhar
  • 检查 WEB 应用程序: docker inspect 来查看 Docker 的底层信息,会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
  1. 查找镜像:docker search httpd

  2. 快捷查看端口的绑定情况docker port adoring_stonebraker 5000 “adoring_stonebraker”为自动分配的容器名称

  3. 查看网络情况 docker network ls

常用命令
  1. 启动docker: systemctl start docker

  2. 获取镜像:docker pull ubuntu

  3. 删除镜像:docker rmi hello-world

  4. 启动容器: docker run -it ubuntu /bin/bash 使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器

  5. 启动已停止运行的容器:docker ps -a docker start b750bbbcfd88

  6. 后台运行:docker run -itd --name ubuntu-test ubuntu /bin/bash -d (指定容器的运行模式)参数默认不会进入容器,想要进入容器需要使用指令 docker exec

  7. 停止一个容器:docker stop <容器 ID> 重启:docker restart <容器 ID>

  8. 进入容器:在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

  • docker attach 会导致容器停止
  • docker exec 建议使用docker exec 命令,因为此退出容器终端,不会导致容器停止
  1. 导出本地某个容器:docker export 1e560fca3906 > ubuntu.tar导出容器 1e560fca3906 快照到本地文件 ubuntu.tar

  2. 导入容器快照: #cat docker/ubuntu.tar | docker import - test/ubuntu:v1使用 docker import 从容器快照文件中再导入为镜像,将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
    也可以通过指定 URL 或者某个目录来导入: docker import http://example.com/exampleimage.tgz example/imagerepo

  3. 删除容器:docker rm -f <容器 ID>

  4. 运行一个web应用:

docker pull training/webapp  //载入镜像
docker run -d -P training/webapp python app.py //在docker容器中运行一个 Python Flask 应用来运行一个web应用
查看web应用容器:
docker ps 
PORTS 0.0.0.0:32769->5000/tcp //Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上
创建的 web 应用容器 ID 为 bf08b7f2cd89 名字为 wizardly_chandrasekhar
通过浏览器访问WEB应用

停止 WEB 应用容器:
# docker stop wizardly_chandrasekhar
重启WEB应用容器
# docker start wizardly_chandrasekhar

移除WEB应用容器
# docker rm wizardly_chandrasekhar
  1. 运行一个容器并连接到指定test-net网络 docker run -itd --name test1 --network test-net ubuntu /bin/bash
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/675850.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号