上一篇文章将了docker的安装,这篇开始使用docker的一些常用命令。

  首先补充一张图,说说关于docker的架构方面的知识,不懂得百度,这里就不在解释

docker dameon docker daemon-reload_docker

配置镜像加速器

  我们拉去镜像时,可能会比较慢,可以使用国内的镜像加速器,这里我选择阿里云的镜像加速器(官方文档)

# 这个代码针对大于1.10.0版本的,目前应该没有低于这个版本的吧
# 修改daemon配置文件/etc/docker/daemon.json来使用加速器
vim /etc/docker/daemon.json

# 在daemon.json文件中增加镜像路径
	{
	  "registry-mirrors": ["https://7gzk6ycz.mirror.aliyuncs.com"]
	}

# 保存并退出
# 重新加载配置
systemctl daemon-reload

# 重启docker
systemctl restart docker
查询镜像
# 在我们不知道镜像仓库中有没有这个镜像
# 可以先试用search查询镜像是否存在
# 查询是支持模糊查询
docker search [镜像名]
拉取镜像
# 通过pull拉取一个镜像
# 可以指定拉取的版本
# 如果不指定版本,默认是拉取最新的版本
docker pull [镜像名]:[版本]
列出本地的镜像
# 展示已经拉取的镜像
docker images
删除镜像
# 注意区分rm和rmi
# rm是删除容器
# rmi是删除镜像
# 可以通过镜像名删除
# 也可以通过id删除
# 如果有同一个镜像有多个版本,要删除指定的版本需要加上版本号
docker rmi [镜像名]:[版本]
docker rmi [id]
创建容器
# 创建容器之前得有一个镜像
# 这里我用centos镜像举栗子
# 拉取centos镜像
docker pull centos

# 查询本地的镜像
docker images

# 创建容器指令
docker run [options] image [command] [arg...]

# 举个栗子
# 创建centos交互式容器
# run:创建容器指令
# -i:交互式容器
# -t:创建后分配一个终端
# --name:指定容器名,注意不能重复
# test1:指定的容器名
# centos:镜像名
# 两种写法都可以
# 创建完成后是在容器的控制台,可以通过命令进行操作
docker run -i -t --name:test1 centos /bin/bash
docker run -it --name test1 centos /bin/bash

# 创建centos守护式容器
# run:创建容器指令
# -i:交互式容器
# -t:创建后分配一个终端
# -d:守护式容器
# --name:指定容器名,注意不能重复
# test1:指定的容器名
# centos:镜像名
docker run -i -t -d --name test1:centos /bin/bash
docker run -itd --name test1 centos /bin/bash

# 两者的区别
# 交互式容器创建后直接进入容器的控制台进行操作容器,但是退出(exit)容器后,容器停止运行
# 守护式容器创建后并不会进入容器控制台,但是容器会在后台运行

# 进入正在运行的容器的控制台
# 注意此命令的容器必须在运行状态
docker exec -it centos /bin/bash
查询正在运行的容器
# 查询正在运行的容器
docker ps

# 查询运行过的容器
docker ps -a

# 查询最后一次运行的容器
docker ps -l
容器的启动和停止
# 停止容器
docker stop centos

# 启动容器
docker start centos

# 重启容器
docker restart centos
查看容器信息
# 查看容器的详细信息
docker inspect centos

# 如果想查看特定的信息
# 通过-f和'.'来指定
# 例如查询centos的ip
docker inspect -f='{{.NetworkSettings.IPAddress}}' centos
删除容器
# 通过rm指令删除容器
# 正在运行的容器不能被删除
docker rm centos

# 删除所有容器
# 先查询再删除
docker rm `docker ps -a -q`
查看容器日志
# 查询容器的日志
docker logs centos
文件拷贝
# 主机和容器之间相互拷贝文件
# 在主机和centos容器先创建一个文件
# 执行主机拷贝到容器上
# 2.txt是在主机中需要拷贝的文件
# 是在文件所在的目录下执行
# centos是主机名
# /media是拷贝的路径
docker cp 2.txt centos:/media

# 容器拷贝到主机中
# centos是主机名
# /media/1.txt 需要拷贝的文件及所在的路径
# /media 拷贝的路径
docker cp centos:/media/1.txt /media/
目录挂载
# 目录挂载是方便以后在修改配置时进行同步修改
# 比如如果需要修改容器的一些配置,我们需要先登录容器,修改配置,在退出容器,这样就很麻烦
# 而进行目录挂载后,就可以在主机中修改配置,去同步修改容器的配置,这样就不用在去登录容器了
# 通过在创建时添加'-v'参数指定挂载目录
# /media/是主机中的目录,
# /media/soft/centos是容器中的目录
docker run -itd --name centos -v /media/:/media/soft/centos centos /bin/bash