Docker操作
操作 |
指令 |
启动docker |
systemctl start docker |
停止docker |
systemctl stop docker |
重启docker |
systemctl restart docker |
查看docker状态 |
systemctl status docker |
开机启动 |
systemctl enable docker |
查看docker概要信息 |
docker info |
查看docker帮助文档 |
docker --help |
1. Docker 常用命令
1.1. 帮助命令
操作 |
指令 |
查看Docker版本 |
docker version |
查看docker概要信息 |
docker info |
查看docker帮助文档 |
docker --help |
1.2. 镜像命令
1.2.1. 搜索镜像
如果需要在网络中查找需要的镜像,可以通过以下命令搜索
docker search 某个XXX镜像名字 |
例如:要下载centos镜像
docker search centos |
DESCRIPTION:镜像描述 |
STARS:用户评价,反应一个镜像的受欢迎程度 |
OFFICIAL:是否官方 |
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的 |
1.2.2. 拉取镜像
拉取镜像就是从中央仓库中下载镜像到本地,命令:
docker pull 镜像名字 |
例如,要下载centos7镜像:
docker pull centos:7 |
拉取的镜像列表
docker images |
1.2.3. 查看镜像
命令:docker images
REPOSITORY:镜像名称 |
TAG:镜像标签 |
IMAGE ID:镜像id |
CREATED:镜像的创建日期(不是获取该镜像的日期) |
SIZE:镜像大小 |
OPTIONS说明:
-a :列出本地所有的镜像(含中间映像层) |
-q :只显示镜像ID。 |
--digests :显示镜像的摘要信息 |
--no-trunc :显示完整的镜像信息 |
1.2.4. 删除镜像
删除单个镜像
docker rmi -f 镜像ID |
删除多个镜像
docker rmi -f 镜像名1:TAG 镜像名2:TAG |
删除全部
docker rmi -f $(docker images -qa) |
1.3. 容器相关命令
1.3.1. 查看容器
有镜像才能创建容器,这是根本前提(下载一个CentOS镜像演示)
查看正在运行的容器
docker ps |
查看所有容器
docker ps -a |
查看最后一次运行的容器
docker ps -l |
查看停止的容器
docker ps -f status=exited |
1.3.2. 创建和启动容器
创建容器的命令
docker run |
OPTIONS说明(常用):有些是一个减号,有些是两个减号
--name="容器新名字": 为容器指定一个名称; |
-d: 在run后面加上参数-d,会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i-t两个参数,创建后会自动进入容器),并返回容器ID,也即启动守护式容器; |
-i:以交互模式运行容器,通常与 -t 同时使用; |
-t:表示容器启动后会进入其命令行,为容器重新分配一个伪输入终端,通常与 -i 同时使用; |
-p: 表示端口映射 有以下四种格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPort containerPort 前者表示宿主机端口,后者是容器内的映射端口,可以使用多个-p做多个端口映射 |
- 启动交互式容器(创建容器的同时进入到容器命令行中, 一旦退出容器,则容器停止)
docker run -it --name=centos 镜像名称:标签 /bin/bash |
例如docker run -it --name=centos 镜像id /bin/bash |
退出当前容器
exit |
交互式容器停止后是可以继续启动的,这时候再次启动则变成了守护石容器
- 启动守护式容器
创建守护式容器
docker run -di --name=容器名称 镜像名称:标签 |
docker run -di --name=mycentos2 centos:latest |
进入容器内部
docker exec -it 容器id /bin/bash
退出命令行exit
1.3.3. 容器的停止和启动
停止容器
docker stop 容器名称(或者容器id) |
docker stop mycentos2 |
启动容器
docker start 容器名称(或者容器id) |
docker start mycentos2 |
docker run 和 docker start 的区别
docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。
而docker start的作用是,重新启动已存在的镜像。也就是说,如果使用这个命令,我们必须事先知道这个容器的ID,或者这个容器的名字,我们可以使用docker ps找到这个容器的信息。
重启容器
docker restart 容器名称(或者容器id) |
docker restart mycentos2 |
强制停止容器
docker kill 容器名称(或者容器id) |
docker kill mycentos2 |
1.3.4. 文件的拷贝
- 如果需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或者目录 容器名称:容器目录 |
docker cp /tmp/anaconda.log mycentos2:/tmp |
docker exec -it mycentos2 /bin/bash |
- 也可以将文件从容器内拷贝出来(都是在容器外操作)
docker cp 容器名称:容器目录 需要拷贝的文件或者目录 |
docker cp mycentos2:/tmp /export/ |
简单方法___挂载目录
1.3.5. 目录挂载
必须在创建容器的时候挂载 ,实现了宿主机的目录与容器目录文件的共享
使用该功能可以实现容器和宿主据数据的共享
宿主机目录:容器目录
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:latest |
如果共享的是多级的目录,可能会出现权限不足的提示。
这是因为Centos7中的安全模块selinux把权限禁掉了,我们需要添加参数--privileged=true来解决
docker run -di --privileged=true -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:latest |
1.3.6. 查看容器 ip地址
可以通过以下命令查看容器运行的各种数据
docker inspect 容器名称(容器id) |
docker inspect mycentos3 |
也可以直接执行下面的命令直接输出IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器id) |
docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos3 |
1.3.7. 删除容器
容器不再使用可以直接删除掉
删除指定的容器:
docker rm 容器名称(容器ID) |
docker stop mycentos3 |
docker rm mycentos3 |
2. 安装 mysql
docker search mysql |
从docker hub上(阿里云加速器)拉取mysql镜像到本地标签为5.7
docker pull centos/mysql-57-centos7 |
创建守护容器
docker run -di --name=tensquare_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7 |
-p 代表端口映射,格式为宿主机映射端口:容器运行端口 |
-e 代表添加环境变量,MYSQL_ROOT_PASSWORD是root用户的登录密码 |
3. Docker 的迁移与备份
容器保存为镜像
docker commit 容器名称 镜像名称
docker commit mynginx mynginx_image |
基于新创建的镜像创建容器
docker run -di --name=mynginx2 -p 81:80 mynginx_image |
镜像备份
可以通过以下命令将镜像保存为tar文件(保存到当前目录)
docker save -o mynginx.tar mynginx_image |
-o:表示output,输出的意思 |
scp -r mysql.tar node2:/expore
使用此命令进行恢复镜像
docker load -i mynginx.tar |
-i:表示输入的文件,执行后再次查看镜像,可以看到镜像已经恢复 |
[docker使用]