即使再小的帆也能远航。
只要学不死就往死里学。
docker帮助文档
Install Docker Engine on CentOS | Docker Docs
Docker是一个client - server结构的系统
Docker 安装
1.卸载旧的版本
2.需要的安装包:yum install -y yum-utils
3.设置镜像仓库:
yum-config-manager \
> --add-repo \
> http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引 :yum makecache fast
4.安装docker相关的内容:yum install docker-ce docker-ce-cli containerd.io
安装指定的版本:
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
5.启动docker:systemctl start docker
docker version
docker restart
docker run hello-world
查看hello-world镜像 docker images
配置阿里云镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://ueohsu48.mirror.aliyuncs.com"] } EOF
sudo systemctl daemon-reload
Docker底层原理
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问!DockerServer接受到Docker-Client的指令,就会执行这个命令!
Docker为什么比VM快?
Docker有着比虚拟机更少的抽象层。
新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导。虚拟机是加载Guest OS,分钟级别的,而docker是利用宿主机的操作系统,省去了这个复杂的过程。
docker-ce社区版 docker-ee企业版
Docker概述
Docker安装
cd /
pwd
ls
uname -r //查看系统内核
cat /etc/os-release //查看系统版本
Docker命令:
帮助命令:
docker version
docker info
docker --help #帮助命令
docker 命令 --help
docker images --help
镜像命令:
docker images
docker images -a
docker images -q //只显示镜像的ip
docker search 搜索镜像
docker search mysql
docker search mysql --filter=STARS=3000
docker pull 下载镜像
docker pull mysql //默认tag是latest
分层下载 ,docker image的核心 联合文件系统
docker pull mysql
等价docker pull docker.io/library/mysql:latest
指定版本下载:docker pull mysql:5.7
删除镜像:docker rmi -f id//通过id删除
docker rmi -f id id id #删除多个容器
docker rmi -f//删除所有的镜像
docker rmi -f $(docker images -aq) #删除所有的容器
容器命令:
docker pull centos
新建容器并启动
docker run -it centos /bin/bash//启动并进入容器
exit //退出去,从容器中退回主机
容器不停止退出:Ctrl +P + Q (快捷键)
列出所有运行的容器:docker ps
列出曾经运行过的容器: docker ps -a
docker ps -a -n=1 //列出新创建的1个容器
docker ps -aq显示当前所有容器的编号
删除容器: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 //强制停止
操作命令
DockerFile
Docker网络原理
IDEA整合Docker
以上是单机版的Docker
Docker Compose
Docker Swarm 简化版的k8s
CI\CD jenkins
后台启动容器:
docker run -d centos
常见的坑:docker容器使用后台运行,就必须要有一个前台进程。docker发现没有应用,就会自动停止。
查看日志:
docker logs --help
自己编写一段shell脚本
docker run -d centos /bin/sh -c "while true;do echo hengyyy;sleep 1;done"
显示日志
docker logs -tf --tail 10 容器id
查看容器中进程信息:
docker top 容器id
查看镜像的元数据:
docker inspect --help
docker inspect 容器id
进入当前正在运行的容器
docker exec -it 容器id bin/bash //方式一 进入容器后开启一个新的终端,可以在里面操作(常用)
ps -ef
方式二:
docker attach 容器id //进入容器正在执行的终端,不会启动新的进程!
从容器内拷贝
cd /home
touch kuangshen.java
touc test.java //在容器内新建一个文件
docker attach 容器id
docker cp 容器id:/home/test.java /home
拷贝是一个手动过程,未来我们使用 -v卷的技术,可以实现
1.搜索镜像
2.下载镜像
docker run -d --name nginx01 -p 2244:80 nginx
-d 后台启动
--name 给容器命名
-p 宿主机端口,容器内部端口
curl localhost:3344
docker exec -it nginx01 /bin/bash
whereis nginx
cd /etc/nginx
docker stop 容器id
阿里云镜像默认是最小的镜像,所有不必要的都剔除掉。保证最小可运行的环境
cd .. //是什么命令 退出
cd webapps.dist/
cp -r webapps.dist/* webapps
es暴露的端口很多
es十分的耗内存
es的数据一般需要放置到安全目录!挂载
下载启动es:
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
启动之后 linux服务器会变卡的!
docker stats 查看cpu的状态
赶紧关闭,增加内存的限制
docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m Xmx512m" elasticsearch:7.6.2
可视化
portainer(先用这个)
docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
Rancher(CI/CD再用)