Docker使用国内的源
- windows下使用 "everything"软件 查找 daemon.json
- 修改为如下:
{"registry_mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
查看images(镜像)
docker images
注: 看见的镜像是已经下载好的,因此在没有网络的情况下也可以用
搜索镜像
docker search 镜像名称
- 栗子: 搜索centOS
docker search centos
拉取镜像
- 作用: 从远程仓库中拉取镜像到本地中
- 语法: docker pull 镜像名称
- 栗子: 拉取 tutum/centos 镜像到本地
docker pull tutum/centos
删除镜像
- 按镜像ID删除镜像
docker rmi 镜像ID
- 删除所有镜像
docker rmi `docker images -q`
注: docker images -q 列出了所有
查看容器
- 查看正在运行的容器
docker ps
- 查看所有容器
docker ps -a
- 查看最后一次运行的容器
docker ps -l
- 查看停止的容器
docker ps -f status = exited
创建与启动容器
- 创建容器:
docker run
-
参数说明:
-i: 表示运行容器
-t: 表示容器启动后会进入其命令行.
-it: 表示容器创建后就能登录进去,即分配了一个伪终端
–name: 为创建的容器命名
-v: 表示目录映射关系,可以使用多个 -v 做多个目录或文件映射
-d: 创建一个守护式容器在后台运行
-p: 表示端口映射,前面是宿主机端口,后面是容器映射的端口. -
语法:交互式方式创建容器
docker run -it --name='容器名称' 镜像名称:标签 /bin/bash
- 栗子: 创建一个可交互式的centos 7.x 的终端
docker run -it --name=mycentos centos:7 /bin/bash
注:
centos:7在本地images中并不存在,因此会自动从远程仓库中拉取
退回宿主机: exit
- 语法2: 守护式方式创建容器
docker run -id --name=容器名称 镜像名称:标签
- 登录守护式容器方式:
docker exec -it 容器名称(或者容器ID) /bin/bash
容器的停止与启动
- 首先查看容器
docker ps
- 语法: 停止容器
docker stop 容器名称(或者容器ID)
栗子: 关闭名称为centos2(假设已开启)的容器
docker stop centos2
- 语法: 启动容器
docker start 容器名称(或者容器ID)
栗子: 打开mycentos(假设存在)容器
docker start mycentos
栗子2: 进入刚才打开的mycentos
docker exec -it mycentos /bin/bash
文件拷贝
- 语法: 将文件拷贝到容器内
docker cp 需要拷贝的文件或目录 容器名称:容器目录
- 语法2: 将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
目录挂载
在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主主机某个目录的文件从而取影响容器
- 语法: docker run -id -v 宿主机(docker守护进程所在的机器)目录:容器目录 --name 容器名称 镜像名称:标签
- 栗子: 新建一个守护容器(mycentos3),它使用centos:7的镜像,将本地桌面(C:\Users\Administrator\Desktop\myhtml) 和 容器(/usr/local/myhtml) 之间形成映射
docker run -it --name=mycentos3 -v C:\Users\Administrator\Desktop\myhtml:/usr/local/myhtml centos:7
权限不足,解决方案:
添加如下:
--privileged=true
查看容器ip地址
- 语法: docker inspect 容器名称(容器ID)
- 栗子: 查看容器的所有信息
docker inspect mycentos
- 栗子2: 查看容器(mycentos)的ip地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos
容器的删除
- 语法: docker rm 容器名称(容器ID)
- 栗子: 删除mycentos
docker rm mycentos
注: 容器必须处于暂停状态才能删除