# 一、镜像相关指令

# 1、搜索镜像

# 指令

docker search

# 案例:搜索 busybox

\docker search busybox
NAME                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
busybox                   Busybox base image.                             1847                [OK]                
arm32v7/busybox           Busybox base image.                             8                                       
yauritux/busybox-curl     Busybox with CURL                               7                                       
..............................................................................................................................
sou856099/busybox                                                         0                                       
ggtools/busybox-ubuntu    Busybox ubuntu version with extra goodies       0                                       [OK]
trollin/busybox                                                           0                                       

# 2、下载镜像

# 指令

docker pull <registry>[:<port>]/[namespace/]<name>:<tag> 不加 tag 默认 最后一个版本

# 案例:从官方获取一个 busybox 镜像

docker pull busybox

# 3、查看已有镜像

# 指令

docker images / docker image ls

# 案例

\docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              83aa35aa1c79        4 weeks ago         1.22MB
mytomcat9           latest              a1c3edd61706        5 months ago        678MB
centos              latest              0f3e07c0138f        6 months ago        220MB
mysql               5.7                 383867b75fd2        7 months ago        373MB
busybox             <none>              19485c79a9bb        7 months ago        1.22MB

# 4、移除镜像

# 指令

docker rmi [镜像名/ID]

# 案例

\docker rmi 19485c79a9bb
Untagged: busybox@sha256:fe301db49df08c384001ed752dff6d52b4305a73a7f608f21528048e8a08b51e
Deleted: sha256:19485c79a9bbdca205fce4f791efeaa2a103e23431434696cc54fdd939e9198d
Deleted: sha256:6c0ea40aef9d2795f922f4e8642f0cd9ffb9404e6f3214693a1fd45489f38b44
\docker rmi busybox:latest 
Untagged: busybox:latest
Untagged: busybox@sha256:b26cd013274a657b86e706210ddd5cc1f82f50155791199d29b9e86e935ce135
Deleted: sha256:83aa35aa1c79e4b6957e018da6e322bfca92bf3b4696a211b42502543c242d6f
Deleted: sha256:a6d503001157aedc826853f9b67f26d35966221b158bff03849868ae4a821116

# 5、在已有镜像上定制镜像

docker save

docker load

docker commit

Image简易制作

# 二、容器相关指令

# 1、启动容器

# 指令

docker run [option]

options:

  • --name 指定容器名称
  • -it 交互模式

    -i :让 Docker 分配一个未中断(pseudo-tty)并绑定到容器的标准输入上

    -t:让 Docker 容器的标准输入保持打开

  • -d 使用守护态(Daemonized)形式运行【在后台运行】

# 案例

## 启动一个 bash 终端与用户进行交互,结束交互终止容器
docker run --name sb1 -it busybox
## 启动一个容器输出 "Hello World" 后终止容器
docker run --name sb1 busybox /bin/echo "Hello World"

# 2、查看容器进程

# 指令

docker ps [option]

options:

  • -a:所有 docker 容器,包括中止和启动的展示

# 案例

## 查看所有容器
docker ps -a

# 3、启动已有的容器

docker start <dockerName>

# 4、停止/重启/强制中止

docker stop/restart/kill

# 5、在宿主机执行容器中命令

# 指令

docker container exec <dockerName> <commandline>

# 案例

## 指令容器中的 ls 命令
docker container exec sb1 /bin/ls

# 6、查看容器日志

# 指令

docker container logs <dockerName>

# 案例

# 查看 sb1 日志信息
docker container logs sb1

# 7、删除处于中止状态的容器

docker rm sb1

# 8、从宿主机进入容器中

docker exec -it busybox /bin/bash

# 三、网络相关指令

# 1、容器互联-通过容器名

# 指令

docker run -link 容器名

# 案例

如 web 应用,提供web服务需要如数据库,缓存,web应用等多个应用容器。这时候就需要各应用程序间进行通讯。

**step1、**启动一个 mysql 容器

docker run -d --name mysql mysql

**step2、**启动 web 应用,并连接 mysql 服务

docker run -d --name webapp --link mysql webapp

在 web 应用中 mysql 的配置可以直接使用 "jdbc:mysql://mysql:3306/databases",填写容器名,docker 会自动将 mysql 解析成 ip 地址。

# 2、容器互联-通过别名

# 指令

docker run --link 容器名:别名

# 案例

如 web 应用,提供web服务需要如数据库,缓存,web应用等多个应用容器。这时候就需要各应用程序间进行通讯。

**step1、**启动一个 mysql 容器

docker run -d --name mysql mysql

**step2、**启动 web 应用,并连接 mysql 服务

docker run -d --name webapp --link mysql:databases webapp

在 web 应用中 mysql 的配置可以直接使用 "jdbc:mysql://databases:3306/db",填写容器名,docker 会自动将 mysql 解析成 ip 地址。

# 3、暴露端口-容器间

# 指令

docker run --name 容器名 --expose 3306 镜像名

# 4、暴露端口-暴露到外网

# 指令

docker run -d -p <host-port>:<contanier-port> 镜像

# 案例

# 启动 nginx 开放 80 和 443 端口,并映射到宿主机的 80 和 443 端口

docker run -d --name nginx -p 80:80 -p 443:443 nginx:1.12

# 5、创建网络

# 指令

docker network create

options:

  • -d 网络类型

    bridge

    host

    overlay

    maclan

    none

# 案例

# 创建 bridge 网络
docker network create -d bridge myNetwork

# 6、查看当前已有的网络

docker network list

# 7、指定容器的网络

# 指令

docker run --network 网络名

# 案例

# 启动容器并制定网络名
docker run --name mysql --network myNetowrk mysql

# 四、帮助指令

# 1、查看 docker 版本

docker version

# 2、查看 docker 信息

docker info

# 3、查看 docker 帮助命令

docker --help

# 五、其他命令

# 1、从容器中复制文件到宿主机

# 指令

docker cp [container name]:[container file path] [host path]

# 案例

# 从 redis-master-1 容器中复制文件到宿主机
docker cp redis-master-1:/usr/xxx/xxx ./
精彩内容推送,请关注公众号!
最近更新时间: 5/14/2020, 12:49:41 PM