docker命令

本文详细介绍了Docker的安装、启动、验证、设置开机启动、卸载、容器的交互式与后台运行、查看及管理容器、日志查看、镜像获取与管理、网络创建、容器命名、DNS配置等多个方面,旨在提供全面的Docker操作教程。

1、docker 的安装
    curl -sSL https://get.daocloud.io/docker | sh
    
2、启动docker
    sudo systemctl start docker
    
3、通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 
    sudo docker run hello-world
    
4、设置docker 开机启动
    docker systemctl enable docker
    
5、卸载 docker
    删除安装包:yum remove docker-ce
    删除镜像、容器、配置文件等内容:rm -rf /var/lib/docker
    
6、启动容器(交互式运行容器)
    docker run -it ubuntu /bin/bash
    docker run -i -t ubuntu:15.10 /bin/bash
    
7、启动容器(后台模式)
    docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    docker run -itd --name ubuntu-test ubuntu /bin/bash
    
8、我们可以通过运行 exit 命令或者使用 CTRL+D 来退出容器

    
9、查看容器内日志
    docker logs 2b1b7a428627
    docker logs -f bf08b7f2cd89  # -f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出
    
10、停止容器
    docker stop 2b1b7a428627
    
11、查看运行中的容器    
    docker ps
    
12、查看所有的容器
    docker ps -a
    
13、获取镜像
    docker pull hello-world

16、启动一个已经停止的容器
    docker start b750bbbcfd88 
    
17、停止一个容器
    docker stop b750bbbcfd88 

18、重启一个容器
    docker restart b750bbbcfd88
    
19、进入容器
    docker exec -it 243c32535da7 /bin/bash
    
20、导出容器 1e560fca3906 快照到本地文件 ubuntu.tar
    docker export 1e560fca3906 > ubuntu.tar
    
21、将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
        cat docker/ubuntu.tar | docker import - test/ubuntu:v1
    也可以通过指定 URL 或者某个目录来导入
        docker import http://example.com/exampleimage.tgz example/imagerepo
    
22、删除容器
    docker rm -f 1e560fca3906
    docker rm wizardly_chandrasekhar
    
23、运行一个 web 应用
    docker pull training/webapp  # 载入镜像
    docker run -d -P training/webapp python app.py # -d:让容器在后台运行。 -P:将容器内部使用的网络端口随机映射到我们使用的主机上。

24、通过 -p 参数来设置不一样的端口
    docker run -d -p 5000:5000 training/webapp python app.py
    # -P :是容器内部端口随机映射到主机的高端口。 -p : 是容器内部端口绑定到指定的主机端口。
    docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
    # 指定搬定地址,这样我们就可以通过访问 127.0.0.1:5001 来访问容器的 5000 端口。上面的例子中,默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp。
    
25、查看容器端口的映射情况
    docker port 61986b896237
    docker port adoring_stonebraker 5000
    
26、使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
    docker inspect 61986b896237

27、查询最后一次创建的容器
    docker ps -l
    
28、列出镜像列表
    docker images

29、加载指定版本的镜像,加载版本为15.10的ubuntu系统镜像来运行容器时
    docker run -t -i ubuntu:15.10 /bin/bash 
    
30、获取一个新的镜像
    docker pull ubuntu:13.10
    docker pull httpd
    
31、查找镜像
    docker search httpd
    
32、运行镜像
    docker run httpd
    
33、删除镜像
    docker rmi hello-world
    
34、创建镜像:当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
    1、从已经创建的容器中更新镜像,并且提交这个镜像
    2、使用 Dockerfile 指令来创建一个新的镜像
    
35、更新镜像后提交新镜像
    docker commit -m="has update" -a="chenchaogui" 4aacb26de6bd chenchaogui/ubuntu:v2  
    # -m: 提交的描述信息 -a: 指定镜像作者 4aacb26de6bd:容器 ID  chenchaogui/ubuntu:v2 指定要创建的目标镜像名
    
36、构建镜像
    通过Dockerfile构建镜像
    docker build -t chenchaogui/centos:6.7 .  # -t :指定要创建的目标镜像名   . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
    运行构建的镜像:docker run -t -i chenchaogui/centos:6.7  /bin/bash

37、设置镜像标签为dev
    docker tag c7beb8e317c7 chenchaogui/centos:dev
    
38、容器命名:当我们创建一个容器的时候,docker 会自动对它进行命名。另外,我们也可以使用 --name 标识来命名容器
    docker run -d -P --name chenchaogui training/webapp python app.py
    
39、创建一个新的Docker网络
    docker network create -d bridge test-net  # -d:参数指定 Docker 网络类型,有 bridge、overlay。其中 overlay 网络类型用于 Swarm mode
    
40、运行一个容器并连接到新建的 test-net 网络:
    docker run -itd --name test1 --network test-net ubuntu /bin/bash
    打开新的终端,再运行一个容器并加入到 test-net 网络:
    docker run -itd --name test2 --network test-net ubuntu /bin/bash
    
41、安装ping命令
    apt-get update
    apt install iputils-ping

42、配置Docker的DNS
    我们可以在宿主机的 /etc/docker/daemon.json 文件中增加以下内容来设置全部容器的 DNS:
    {
      "dns" : [
        "114.114.114.114",
        "8.8.8.8"
      ]
    }

43、在指定容器配置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。
    

以下是一些常见的 Docker 命令及使用说明: ### 基本命令 - `docker version`:显示 Docker 版本信息[^1]。 ```bash docker version ``` - `docker info`:显示系统信息,包括镜像、容器数量[^1]。 ```bash docker info ``` - `docker 命令 --help`:查看特定 Docker 命令的帮助信息。例如查看 `docker pull` 命令的帮助: ```bash docker pull --help ``` - `systemctl start docker`:启动 Docker 服务。 ```bash systemctl start docker ``` - `systemctl enable docker`:设置 Docker 服务开机自启动。 ```bash systemctl enable docker ``` ### 镜像相关命令 - `docker pull [IMAGE_NAME]:[TAG]`:下载指定镜像及其标签,如果不指定标签则默认下载 `latest` 标签的镜像。例如下载 `nginx` 镜像: ```bash docker pull nginx ``` - `docker images`:列出本地所有的 Docker 镜像[^1]。 ```bash docker images ``` - `docker rmi [IMAGE_ID/IMAGE_NAME:TAG]`:删除本地的 Docker 镜像。例如删除 `nginx` 镜像: ```bash docker rmi nginx ``` ### 容器相关命令 - `docker run [OPTIONS] IMAGE [COMMAND] [ARG...]`:创建并启动一个新的容器。例如启动一个 `nginx` 容器: ```bash docker run -d -p 80:80 nginx ``` 这里 `-d` 表示后台运行,`-p 80:80` 表示将容器的 80 端口映射到主机的 80 端口。 - `docker ps [OPTIONS]`:列出正在运行的容器,加上 `-a` 选项可以列出所有容器(包括停止的)。 ```bash docker ps -a ``` - `docker stop [CONTAINER_ID/CONTAINER_NAME]`:停止正在运行的容器。例如停止名为 `mynginx` 的容器: ```bash docker stop mynginx ``` - `docker start [CONTAINER_ID/CONTAINER_NAME]`:启动已停止的容器。 ```bash docker start mynginx ``` - `docker exec -it [CONTAINER_NAMEID] [要执行的命令]`:在一个正在运行的容器内执行命令。例如进入 `mynginx` 容器的 `bash` 终端: ```bash docker exec -it mynginx bash ``` - `docker rm [CONTAINER_ID/CONTAINER_NAME]`:删除已停止的容器。例如删除名为 `mynginx` 的容器: ```bash docker rm mynginx ``` - `docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-` `docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH`:用于容器与主机之间的数据拷贝[^3]。例如将主机的 `test.txt` 文件复制到 `mynginx` 容器的 `/tmp` 目录: ```bash docker cp test.txt mynginx:/tmp ``` ### 网络相关命令 可参考 `docker network` 相关命令,例如: - `docker network ls`:列出所有的 Docker 网络。 ```bash docker network ls ``` ### 卷相关命令 - `docker volume ls`:列出所有卷[^4]。 ```bash docker volume ls ``` - `docker volume create <volume>`:创建一个新的卷[^4]。 ```bash docker volume create myvolume ``` - `docker volume rm <volume>`:删除指定的卷[^4]。 ```bash docker volume rm myvolume ``` - `docker volume inspect <volume>`:显示卷的详细信息[^4]。 ```bash docker volume inspect myvolume ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芯晖闲云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值