
安装依赖
yum install -y yum-utils
设置阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
使用yum makecache 生成索引缓存索引提供搜索安装速度
yum makecache fast
yum 会把下载的软件包和header存储在cache中而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令清除索引缓存和下载包的缓存。
yum clean all
安装docker
yum install docker-ce docker-ce-cli containerd.io
启动docker
systemctl start docker
查看版本
docker version
运行测试hello-world
docker run hello-world
d出"Hello from Docker!"则安装成功。
卸载docker
#卸载依赖
yum remove docker-ce-cli containerd.io
#删除资源目录(默认资源路径)
rm -rf /var/lib/docker
帮助命令
docker version #显示docker的基本信息
docker info #显示docker的系统信息,镜像容器数量
docker xxx --help #帮助命令
二、镜像命令
查看所有本地主机上的镜像
[root@xxx ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 7 months ago 13.3kB
#注解
REPOSITORY #镜像仓库源
TAG #版本标签信息
IMAGE ID #镜像ID
CREATED #创建时间
SIZE #镜像大小
#可选
-a #列出所有镜像
-q #只显示镜像ID
搜索镜像
[root@xxx ~]# docker search mysql
#可选(举例)
--filter=STARS=2000 #搜索出来的镜像STARS大于2000的
所有可选项可以通过# docker search --help 来获取
拉取镜像
[root@xxx ~]# docker pull mysql[:镜像名]
删除镜像
[root@xxx ~]# docker rmi -f [IMAGE ID]/[REPOSITORY] [IMAGE ID]... #通过镜像ID或者名称来删
[root@xxx ~]# docker rmi -f $(docker images -aq) #递归删除所有镜像
三、容器命令
创建一个CentOS容器
docker pull centos
新建容器并启动
docker run [可选参数] image
#参数
--name="xxx" #容器名字,用来区分容器
-d #后台方式运行
-it #使用交互方式运行,进入容器查看内容
-p #指定容器的端口
使用方式: 1.+主机端口:容器端口(映射)
2.+容器端口
3.+ip:主机端口:容器端口
-P #随机指定端口
#启动并进入容器
docker run -it centos /bin/bash #启动进入CentOS
ls #查看目录
exit #退出容器
docker ps #当前在运行的容器
docker ps
-a #已经运行过+当前运行的容器
-n=1 #显示最近1个启动过的容器
-q #只显示容器的编号
ctrl+P+Q #容器不停止退出容器
删除容器
docker rm 容器id #删除指定容器(无法删除运行的容器)
docker rm -f $(docker ps -aq) #递归删除所有容器
docker ps -a -q|xargs docker rm #删除所有容器
启动和停止容器
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id #强制停止容器
四、常用其他命令
后台启动容器
docker run -d centos
#坑:docker容器使用后台运行,就必须有一个前台进程,docker发现没有应用,就会自动停止
如:安装了nginx,容器启动后发现自己没有提供服务,就会立刻自杀。
查看日志
docker logs [可选参数] 镜像id
例子:
docker logs -f -t --tail #容器,没有日志
#编写一段shell脚本(每一秒生成一串日志)
docker run -d centos /bin/sh -c "while true;do echo xxx;sleep 1 done"
#显示当前运行的镜像
docker ps
#显示10条日志
docker logs -tf --tail 10 [镜像id]
#参数解释
-t 显示日志
-f 带上时间戳
--tail 显示日志条数
查看容器中的进程信息
docker top 容器id
#说明
UID 当前用户id
PID 父id
PPID 进程id
#查看镜像元数据
docker ps -a
选一个镜像id
docker inspect 镜像id
进入当前正在运行的容器
#通常容器都是在后台运行的,需要进入容器修改一些配置
#命令(这里以CentOS为例子)
#方式一
docker ps
docker exec -it 容器id /bin/bash
#方式二
docker attach 容器id
#区别
exec 进入容器后开启一个新终端,可以 *** 作
attach 进入容器正在执行的终端,不会启动新终端
从容器内拷贝文件到主机上
docker cp 容器id:/home/test.java /home #从容器的home拷贝到主机的home目录
五、Docker是如何工作的
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问
Docker-Server接收到Docker-Client的指令,就会执行这个命令!
Docker为什么比虚拟机快?
① Docker有着比虚拟机更少的抽象层
Docker容器提供了基于进程的隔离,而VM虚拟机提供了资源的完全隔离,由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源,因此在Cpu、内存利用率上Docker将会在效率上有明显优势。
② Docker利用的是宿主机的内核,VM需要Guest OS
所以说,新建一个容器的时候,Docker不需要像虚拟机一样重新加载一个 *** 作系统内核,避免引导,虚拟机是加载GuestOS,而Docker是利用宿主机的 *** 作系统的。省略了这个复杂的过程。
③ Docker的集成性比VM好。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)