Docker使用1
一、运行终端
打开终端,输入docker images
,如果运行正常,表示docker已经可以在本电脑上使用了
二、docker常用命令
指令 | 说明 |
---|---|
docker images | 查看已下载的镜像 |
docker rmi 镜像名称:标签名 | 删除已下载的镜像 |
docker search 镜像 | 从官方仓库(hub.docker.com)查找镜像 |
docker pull 镜像名称:标签名 | 标签名默认是 latest,代表最新版本。 |
docker run | 创建容器 |
docker ps | 列出运行中的容器(运行中) |
docker ps -a | 列出所有的容器(运行、未运行) |
docker rm 容器名称 | 删除停止的容器 |
docker rm -f 容器名称 | 删除运行中的容器 |
docker start 容器名称 | 启动容器 |
docker stop 容器名称 | 停止容器 |
docker restart 容器名称 | 重启容器 |
docker exec | 执行容器中的指令 |
如果在使用过程中有疑惑的地方,可以使用帮助文档查看
三、第一次使用docker
案例:Docker 运行MySql
1. 拉取MySql镜像
docker pull mysql:5.7
下载完成后,我们就可以在本地镜像列表里看到名为 mysql ,标签为5.5的镜像
2. 使用MySql镜像
运行容器
docker run -d --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
命令说明:
- --name=mysql:为容器指定一个名称为mysql
- -p 3306:3306:将容器的(后面的3306) 3306 端口映射到主机的(前面的3306) 3306端口。
- -d:后台运行容器,并返回容器ID。
- -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码为123456。
- mysql:5.7 要使用的镜像的名称
注意:
如果本地已经使用了3306端口,那么可以容器的3306端口映射到本机端口的3307或者其他的
docker run -d --name=mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
运行效果:
查看状态
3. 连接数据库
四、Docker常用命令说明
4.1 Docker pull 命令
docker pull : 从镜像仓库中拉取或者更新指定镜像
语法
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
OPTIONS说明:
-a :拉取所有 tagged 镜像
实例
-
从Docker Hub下载MySql 8.0.1版镜像
docker pull mysql:8.0.1
-
从Docker Hub下载REPOSITORY为mysql的所有版本的镜像
docker pull -a mysql
4.2 Docker images 命令
docker images : 列出本地镜像
语法
docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS说明:
- -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
- --digests :显示镜像的摘要信息
- -f :显示满足条件的镜像
- --format :指定返回值的模板文件
- --no-trunc :显示完整的镜像信息
- -q :只显示镜像ID
实例
-
查看本地所有镜像列表
docker images
-
列出本地镜像中镜像名为ubuntu的镜像列表
docker images ubuntu
4.3 Docker tag 命令
docker tag : 标记本地镜像,将其归入某一仓库
语法
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
实例
将镜像registry.cn-hangzhou.aliyuncs.com/xavier/laravel
标记为test/laravel:latest
镜像
docker tag registry.cn-hangzhou.aliyuncs.com/xavier/laravel test/laravel
docker images laravel
4.4 Docker rmi 命令
docker rmi : 删除本地一个或多个镜像
语法
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS说明:
- -f :强制删除;
- --no-prune :不移除该镜像的过程镜像,默认移除;
什么是过程镜像:在构建新镜像的过程中产生的镜像或者依赖的镜像
实例
强制删除本地镜像mysql:5.5
docker rmi -f mysql:5.5 mysql:5.6
什么时候需要用强制删除呢?在你普通删除删不掉的时候
4.5 Docker run 命令
docker run :创建一个新的容器并运行一个命令
语法
docker run --name 容器名称 -d -p 主机端口:容器内端口 -e 环境变量 --link 其它容器名:容器中别名 镜像名称:标签名
OPTIONS说明:
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- --name="nginx-lb": 为容器指定一个名称;
- -e username="ritchie": 设置环境变量;
- -m :设置容器使用内存最大值;
- --link=[]: 添加链接到另一个容器;当要访问其它容器中的内容时,需要先链接才可以使用
- -p: 开放一个端口或一组端口
实例
使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为wuxidixi。且映射容器80端口到主机8000端口
docker run --name=wuxidixi -d -p 80:80 nginx:latest
4.6 Docker start/stop/restart 命令
docker start :启动一个或多少已经被停止的容器
docker stop :停止一个运行中的容器
docker restart :重启容器
语法
docker start CONTAINER
docker stop CONTAINER
docker restart CONTAINER
实例
停止运行中的容器
docker stop 容器id
启动已被停止的容器mysql
docker start 容器id
重启容器
docker restart 容器id
4.7 Docker rm 命令
docker rm :删除一个或多个容器
语法
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS说明:
- -f :通过SIGKILL信号强制删除一个运行中的容器
- -l :移除容器间的网络连接,而非容器本身
- -v :-v 删除与容器关联的卷
实例
s强制删除容器mysql
docker rm -f mysql
移除容器对容器mysql的连接,连接名mysql
docker rm -l mysql
删除容器nginx01,并删除容器挂载的数据卷
docker rm -v nginx01