Docker基本管理
Docker是什么
Docker 是一个[开源]的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 [Linux]或[Windows] 机器上,也可以实现[虚拟化]。容器是完全使用[沙箱]机制,相互之间不会有任何接口。
- 是一种轻量级别的“虚拟机”
- 在linux容器里运行应用的开源工具
Docker与虚拟机的区别
- Docker比虚拟机运行快只需要几毫米
- Docker占用资源少,虚拟机占用资源多
- 安全方面Docker共享内核,不安全,虚拟机是逻辑隔离,安全
- 服务上面Docker一个容器一个服务,虚拟机一个容器多个服务
Docker的使用场景
- 打包应用程序简化部署
- 可脱离底层硬件任意迁移
- 列:服务从腾讯云迁移到阿里云
Docker的核心概念及安装方式
Docker核心概念
●镜像
一个面向Docker容器引擎的只读模板
●容器
◆从镜像创建的运行实例
●仓库(公有,私有)
集中保存镜像的地方
CentOS安装Docker的两种方式
●使用CURL获得Docker的安装脚本进行安装
●使用YUM仓库来安装Docker
安装Docker
安装最新版本Docker依赖版本环境
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo i
https://download.docker.com/linux/centos/docker-ce.repo
安装Docker 并设置为开机自动启动
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
检查Docker版本查看Docker服务
docker version
检查Docker版本查看Docker服务
docker version
docker镜像操作
搜索镜像
docker search关键字
获取镜像
docker pull仓库名称[:标签]
查看镜像
docker images仓库名称[:标签]
docker inspect 镜像ID号
添加新标签
docker tag 名称[:标签]新名称[:新标签]
删除镜像
docker rmi仓库名称[:标签]
或
docker rmi镜像ID号
批量删除容器指令
vim none.sh
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
docker ps -a | grep "Exited" | awk '{print $1}'|xargs docker rm
docker images|grep none|awk '{print $3}'|xargs docker rmi
存出镜像
docker save -o存出文件名存出的镜像
载入镜像
docker load --input存出文件名
或
docker load<存出文件名
上传镜像
docker push仓库名称[:标签]
Docker容器
1:创建容器
docker create[选项]镜像运行的程序
-i让容器的标准输入保持打开
-t让Docker分配一个伪终端
2:查看容器运行状态
docker ps[选项]
-a列出所有的容器,包括未运行的容器
Docker容器操作
启动容器
docker start容器的ID/名称
创建容器并启动执行shell命令
docker run[选项]镜像运行的程序执行的命令
-d在后台进行运行
终止容器
docker stop容器的ID/名称
了解云服务基本概要图
部署docker容器
安装依赖包
yum install -y yum-untils device-mapper-persistent-data lvm2
- yum-utils提供了yum-config-manager
- device mapper存储驱动程序需要device-mapper-persistent-data和lvm2
- Device Mapper是Linux2.6内核中支持逻辑卷管理的通用设备映射机制,
- 它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
查看容器是否安装完成
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
docker-ce.repo
设置阿里云的镜像源
[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker-CE
[root@localhost yum.repos.d]# yum install docker-ce
开启docker
[root@localhost yum.repos.d]# systemctl start docker.service
[root@localhost yum.repos.d]# systemctl enable docker.service
查看状态
[root@localhost yum.repos.d]# systemctl enable docker.service
Active: active (running)
安装镜像加速器(每个人都不一样)
打开阿里云搜索镜像加速
找到相关产品
找到镜像加速的代码复制使用
[root@localhost yum.repos.d]# cd /etc/docker/
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ctzniuyu.mirror.aliyuncs.com"]
}
EOF
开启加速系统
[root@localhost docker]# systemctl daemon-reload
[root@localhost docker]# systemctl restart docker
网页优化
启动路由转发功能
[root@localhost docker]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@localhost docker]# sysctl -p
[root@localhost docker]# systemctl restart docker
安装完成
docker基础命令
查看docker信息
[root@localhost docker]# docker version
搜索nginx镜像
[root@localhost docker]# docker search nginx
下载nginx镜像
[root@localhost docker]# docker pull nginx
查看镜像列表
[root@localhost docker]# docker images
REPOSITORY TAG(标签) IMAGE ID(id号) CREATED(创建时间) SIZE(大小)
nginx latest 7e4d58f0e5f3 7 days ago 133MB
查看内核
[root@localhost docker]# docker search busybox
下载内核
[root@localhost docker]# docker pull busybox
下载文件存放位置
[root@localhost docker]# cat /var/lib/docker/image/overlay2/repositories.json
查看镜像的详细信息
1:[root@localhost overlay2]# docker inspect nginx:latest
或id号查看
2:[root@localhost overlay2]# docker inspect 7e4d58f0e5f3
添加标签(属于创建硬链接)
root@localhost docker]# docker tag nginx:latest nginx:web
过滤查看
[root@localhost overlay2]# docker images | grep nginx
删除镜像
[root@localhost overlay2]# docker rmi nginx:web
删除容器
[root@localhost overlay2]# docker rm
如果docker创建别名,需要先删除别名在删除docer才可以,
不可以直接删除docker,不然会报错
删除nginx镜像
[root@localhost overlay2]# docker rmi nginx:latest
将指定镜像保存成 tar 归档文件
[root@localhost overlay2]# docker save -o /opt/nginx nginx:latest
恢复镜像
[root@localhost overlay2]# docker load < /opt/nginx
上传镜像
docker login
Username:
Password:
容器的操作
容器列表
[root@localhost overlay2]# docker ps -a
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 7e4d58f0e5f3 8 days ago 133MB
busybox latest 6858809bf669 9 days ago 1.23MB
Created Up 查看是否创建状态
创建容器
[root@localhost overlay2]# docker create -it nginx:latest /bin/bash
开启容器
[root@localhost overlay2]# docker start 186edb9c7b27
下载centos7
[root@localhost overlay2]# docker pull centos:7 下载
[root@localhost overlay2]# docker create -it centos:7 /bin/bash 创建容器
[root@localhost overlay2]# docker start 0409ee65f898 开启服务
[root@localhost overlay2]# docker stop 0409ee65f898
Exited 这个状态(退出)
[root@localhost overlay2]# docker rm 0409ee65f898 删除容器
启动执行命令查看centos7系统根目录
[root@localhost opt]# docker run centos:7 /bin/bash -c ls /
anaconda-post.log
bin
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
持续在后台输出执行
[[A[root@localhost ~]# docker run -d centos:7 /bin/bash -c "while true;do echo hello;done"
容器进入(一定要up状态才可以进入)
[root@localhost ~]# docker exec -it ff13f6f6a68b /bin/bash
[root@eee80b4c94a5 /]#
安装服务软件包
[root@eee80b4c94a5 /]# yum list
容器做服务
[root@eee80b4c94a5 /]# yum -y install httpd 安装一个服务
[root@ff13f6f6a68b /]# yum -y install openssh
[root@ff13f6f6a68b ]# systemctl start sshd 开启服务
[root@ff13f6f6a68b /]# exit 退出
容器导出
[root@localhost ~]# docker export ff13f6f6a68b > /opt/nginx_c
容器导入(因为之前导出的是镜像文件,所以要先创建容器,才能导入镜像!!!)
cat /opt/centos_c | docker import - centos_c
删除容器
[root@localhost ~]# docker rmi ff13f6f6a68b
批量删除
[root@localhost ~]# docker ps -a | awk '{print "docker rm" $1}' | bash