【云原生 • Docker】docker 环境搭建、docker 与容器常用指令大全
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
目录
一、Docker 环境搭建
1. 准备工作已有 Linux 环境可省略
在这里我们用 VM 虚拟机 + CentOS 的环境进行 Docker 部署建议使用 CentOS 7 以上版本。
首先准备一台 CentOS 系统的虚拟机可以看到主机的 IP 地址为 192.168.200.129
为了更加直观我将使用 Xhell 7 连接虚拟机进行操作演示
2. 安装 Docker
第一步yum 包更新到最新
//更新yum
sudo yum update
第二步安装需要的软件包yum-util提供 yum-config-manager 功能device-mapper-persistent-data、lvm2devicemapper 驱动依赖
//安装需要的包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
第三步设置 yum 源为阿里云
//设置阿里云源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
第四步安装 Docker
//安装docker
sudo yum install docker-ce
第五步检查 Docker 版本
//检查 docker 版本
docker -v
使用 docker -v 命令可以查看到版本号即说明安装成功。
3. 设置 ustc 镜像
Docker 安装完成之后还需要执行一个操作那就是设置国内镜像站点否则 Docker 中下载操作会很慢。
ustc 是老牌 Linux 镜像服务提供者它的 Docker 加速器速度很快而且不需要注册是真正的公共服务。
需要注意的是在设置之前要先启动 docker 服务如果不启动服务就编辑 .json 文件是无法正常保存的因为它无法找到 Docker 进程。启动 Docker 服务使用指令
service docker start
然后 vi 进入文件 /etc/docker/daemon.json在文件中添加以下内容
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
退出保存即可。
二、Docker/容器操作命令汇总
1. Docker 操作命令
systemctl start docker //启动 Docker
systemctl stop docker //停止 Docker
systemctl restart docker //重启 Docker
systemctl status docker //查看 Docker 状态
systemctl enable docker //开机自启动 Docker
docker info //查看 Docker 概要信息
docker --help //查看 Docker 帮助文档
2. 镜像相关命令
docker images //查看镜像这些镜像都存储于 /var/lib/docker 目录下
- repository - 镜像名称
- tag - 镜像标签
- image id - 镜像 id
- created - 镜像的创建日期
- size - 镜像的大小
docker search 镜像名称 //搜索镜像从网络查找需要的镜像
- name - 仓库名称
- description - 镜像描述
- stars - 用户评价反映该镜像的受欢迎程度
- official - 是否官方
- automated - 自动构建表示该镜像是由 Docker Hub 自动构建流程创建的。
docker pull 镜像名称 //拉取镜像从中央仓库下载镜像到本地
如下载 centos 7 镜像
docker rmi 镜像ID //删除镜像可根据镜像 ID 也可根据镜像名称
docker rmi `docker images -q` //删除所有镜像
3. 查看容器
docker ps //查看容器
docker ps -a //查看所有容器
docker ps -l //查看最后一次运行的容器
docker ps -f statu=exited //查看停止的容器
4. 创建容器
docker run
docker run 参数
包含参数如下
- -i 运行容器
- -t 容器启动后自动进入其命令行
- --name 为创建的容器命名
- -v 表示目录映射关系前者为宿主机目录后者是映射到宿主机上的目录
- -d 加了这个参数则会创建一个守护式容器在后台运行这样创建容器后不会自动登录容器
- -p 表示端口映射前者为宿主机端口后者是容器内的映射端口
常用创建容器的方式为交互式创建容器和守护式创建容器如下
//交互式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
//退出当前容器
exit
//守护式创建容器
docker run -di --name=容器名称 镜像名称:标签
//登录守护式容器
docker exec -it 容器名称/ID /bin/bash
5. 停止与启动容器
docker stop 容器名称/ID //停止容器
docker start 容器名称/ID //启动容器
6. 文件挂载
docker cp 需要拷贝的文件/目录 容器名称:目录 //将文件拷贝到容器内
docker cp 容器名称:目录 需要拷贝的文件/目录 //将文件从容器拷贝出来
7. 目录挂载
在创建容器时我们可以将宿主机的目录与容器内的目录进行映射这样就可以通过修改宿主机的目录文件从而直接影响容器了。
docker run -di -v 宿主机目录:容器目录 --name=容器名称 镜像名称:标签
如果共享多级的目录可能会出现权限不足的提示。这是由于 CentOS 7 中的安全模块 selinux 将权限禁止了这时候可以添加参数 --privileged=true 来解决此问题。
8. 查看容器 IP 地址
docker inspect 容器名称/ID //查看容器 ip 以及相关的各种数据
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称/ID //查看容器 ip 地址并输出
9. 删除容器
docker rm 容器名称/ID //删除指定的容器
需要注意的是如果想要删除一个容器需要先停止该容器且如果镜像中有运行状态的容器也是无法删除容器的。