docker 三大名词
镜像:image:模板可以创建容器服务的,可以通过 这个模板来创建容器服务,
容器:container 独立的于宁一组应用,通过镜像来创建,启动停止删除,一个简易的linux系统
仓库:repository存放镜像的
删除旧版本的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
服务安装包
yum install -y yum-utils
yum -y install vim*
Linux 安装yum报错Could not resolve host
设置镜像仓库(阿里云)
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
我亲测官方比阿里快 ------- 沃特法克
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装docker
yum install docker-ce docker-ce-cli containerd.io
启动docker
systemctl start docker
检查docker 版本 确定是否安装成功
docker -v
删除docker
yum remove docker-ce docker-ce-cli containerd.io
docker默认资源路径
rm -rf /var/lib/docker
镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
仓库源 标签 镜像id 创建时间 大小
搜索
dokcer search [应用]
下载
docker pull [ imagesId]
vi /etc/docker/daemon.json
创建并写入
{
"registry-mirrors":["http://hub-mirror.c.163.com/"]
}
systemctl daemon-reload
systemctl restart docker
删除
docker rmi 62771b0b9b09(镜像Id) 62771b0b9b09(镜像Id)
docker rmi -f $(docker images -aq) 删除全部
容器命令
--name="name" 容器名称 es1 es2 用来区分容器
-d 后台运行
-it 使用交互方式运行,进入容器查看内容 (it )
-P (大写)指定容器端口 -p 8080(主机):8080(容器)
-p (小写)随机端口
查看运行的容器
docker ps 当前运行容器
docker ps -a 历史运行的容器
docker ps -a n=1 历史运行的容器1个
docker ps -q 容器名称
退出容器
exit 退出并停止
ctrl + p +q 容器不停止退出
删除容器
docker rm id
启动停止重启
docker start/stop/restart/kill 容器id
其他常用
后台运行容器
docker run -d centos
但是docker ps 却没有服务进程------容器在启动后一定要有前台进程,docker发现没有进程就会停止
log
docker logs -f -t --tail [数量] id
进程信息
docker top id
查看元数据
docker inspect id
进入容器
docker exec -it 【id】 /bin/bash (开启新的终端,可以再里面操作)
docker attach [id] ( 正在执行的终端,不会启动新进程)
安装 yum vim
apt-get update
apt-get install vim
容器内拷贝文件到外部
docker cp 【id】:容器内路径 目的主机路径
查看CPU
docker stats
打包镜像
docker commit (提交容器为一个新副本)
docker commit -m=“提交信息”-a=''作者" id 目标镜像名:版本
数据卷
docker run -it -v/宿主机目录:/容器内目录 镜像name
加权限 容器内不可改写
docker run -it -v/宿主机目录:/容器内目录:or 镜像name
dockerFile
build 构建镜像
新建dockerfile文件
docker build -f 文件路径 -t 名字 .
vim dockerfile
FROM centos
VOLUME ["/dataVol1","dataVol2" ]
CMD echo "-------OK----------"
CMD /bin/bash
docker build -f /mydocker/dockerfile -t new/centos .
容器数据卷
创建
docker network create 网络名称
删除
docker network rm 网络名称
查看
docker network ls
删除无用的网络
docker network prune
docker run -it --name 新容器名称--volumes-from 复制的容器名称
docker run -it --name doc02 --volumes-from newcentos
网络
docker addr
- 127.0.0.1 本机循环地址
- 192.168.9.110 内网地址
- 192.168.9.110 docker地址
在启动一个容器后
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
docker run -d -P --name nginx01 --net mynet nginx
docker run -d -P --name nginx02 --net mynet nginx
docker network inspect mynet
打通网络
docker network connect mynet 容器
Compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
mkdir composetest
cd composetest