Docker-Windows常用命令

Docker-Windows常用命令

2020-04-19

参考链接:Docker初识

下载安装

安装完成后,若需要更改默认镜像位置,在设置里更改。更改设置中的配置,都需要重启,很费事。

安装后,可以运行一下hello-world这个仓库,检查一下是否成功。

docker pull hello-world
docker run hello-world

配置阿里云镜像加速

国内访问Docker的速度慢,有两种解决方案:配置代理或者使用阿里云的镜像。阿里云的速度更有保证。

在阿里云的控制台,搜索容器镜像服务,然后在镜像中心--镜像加速器。复制一下我的加速器网址,粘贴到"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"], 即可。

检查加速器配置是否生效,docker info,如果从结果中看到了Registry Mirrors: https://xxxx,说明配置成功。

安装Ubuntu镜像

我们从Doker Hub获取镜像。

先搜索Ubuntu镜像。docker search ubuntu。返回的第一个就是Ubuntu的官方镜像。

2. docker pull

docker pull [选项] ['Docker Registry'地址 [:端口号] /] 镜像名 [:标签]

地址的格式一般是<域名/IP>[:端口号]。默认地址是 Docker Hub,但我们已经将其修改为阿里云的加速器。

docker pull training/webapppythonapp

docker pull busybox :是一个集成了三百多个最常用Linux命令和工具的软件,简化的Linux系统

docker pull ubuntu 即可将镜像拉到本地。

3. docker image

使用 docker image ls 查看所有本地镜像;

删除镜像docker image rm xx/xx即可

查看容器状态

docker ps只返回正在运行的容器

docker ps -a 查看所有容器(运行&没有运行)

启动容器

  • 基于镜像(image)新建一个容器并启动,
  • 将在终止状态(stopped)的容器重新启动。

方式一:docker run

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

COMMAND: 容器启动后进入容器中要执行的命令.

OPTIONS(常用选项)

  • -d:让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下
  • -t:选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
  • -i:则让容器的标准输入保持打开。
  • --name:为容器命名
  • -v:创建数据卷,就是主机和docker之间的映射关系。
  • -p:绑定端口

举例1:docker run -p 8000:5000 –-name web training/webapp

-p绑定本地8000端口,映射到容器的5000端口。也可以绑定多个端口。

新建了一个名为web,基于training/webapp镜像的容器。

在本地浏览器中,打开localhost:8000即可查看输出。

举例2:后台运行-d

docker run –d –p 8000:5000 training/webapp

举例3:交互运行

启动一个 bash 终端,允许用户进行交互。

docker run -t -i CONTAINER [CONTAINER...] /bin/bash

比如 docker run -t -i centos /bin/bash

方式二:(1)docker stop

通过 docker ps可得到CONTAINER ID,直接使用这个ID即可。

docker stop 10fc ,只用ID的一部分也可以。

(2)docker start

启动一个停止的容器,和stop命令一样,可以使用ID的一部分即可。

注意这里只能启动!不能打开交互式bash

(3)docker exec -i -t CONTAINER /bin/bash

打开交互式窗口。针对已经启动,正在后台运行的容器。这是条很实用的命令。

重启和删除

docker restart

重启容器。

docker rm

删除容器前,请先关闭容器

查看日志

docker logs [OPTIONS] CONTAINER

options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

主机和容器间文件互传

docker cp CONTAINER:/home/user d:/xxx

这是从容器向主机拷贝文件。容器的路径写法一定要加上ID

如果把顺序反过来,就是主机向容器拷贝文件。

不仅能拷贝文件,文件夹也可以

数据卷

相当于把主机上的盘挂载到容器上,所以有以下优点:

  1. 数据卷 可以在容器之间共享和重用
  2. 对 数据卷 的修改会立马生效
  3. 对 数据卷 的更新,不会影响镜像
  4. 数据卷 默认会一直存在,即使容器被删除
  5. 如果在本机修改代码,在容器中也能看到。方便将本地主机的代码运行在容器中。

设置方法如下:

  • 在设置中打开Shared Drives
  • 设置本地和容器的挂载目录。

docker run -v f:/docker:/opt/docker ubuntu
主机挂载点是f:/docker,容器挂载点是/opt/docker

使用阿里云的镜像

我们以配置PHP开发环境为例

下载阿里云的lamp镜像

docker pull registry.cn-hangzhou.aliyuncs.com/itsource/centos-lamp:[镜像版本号]

  • registry.cn-hangzhou.aliyuns.com/itsource:Docker Registry地址
  • centos-lamp:镜像名
  • 镜像版本号就是TAG(标签)的值

创建lamp容器并运行

docker run -itd -p 80:80 -p 3306:3306 --name lamp --privileged=true -v D:/www/default:/data/wwwroot/default ec258725b54b /usr/sbin/init

  • -p 分配了两个端口
  • --privileged=true 让container内的root拥有真正的root权限
  • ec25... 这是pull下来的镜像的ID

制作本地镜像

docker commit -a "author-name" -m "message" ID Name:版本

docker commit有些选项:

  • -a :提交的镜像作者;
  • -m :提交时的说明文字;
  • -p :在commit时,将容器暂停。

导出

docker save ID -o d:/xxx/centos-lamp-v2.tar

加载本地镜像文件

docker load -i d:/xxx/centos-lamp-v2.tar

原文地址:https://www.cnblogs.com/rongyupan/p/12734678.html