docker应用笔记
卸载docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
删除
卸载 Docker Engine、CLI 和 Containerd 包:
sudo yum remove docker-ce docker-ce-cli containerd.io
主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有镜像、容器和卷:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
查看版本
1. docker version
安装需要的安装包
sudo yum install -y yum-utils
安装aliyun 镜像
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
下载镜像
decker pull tomcat
查看docker 镜像
docker search tomcat
删除镜像
docker rmi images 或者 docker image rm image
查看已经安装镜像
docker images
启动docker
systemctl start docker
阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://tkz3xvag.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
镜像:
docker就相当于一个模板,可以通过这个模板来创建容器服务,tomcat镜像===> run ===> tomcat01
repostory
需要配置国内镜像
docker run的流程
1.启动,docker会在本机寻找镜像,
有镜像 运行
无镜像 去dockerhub中下载
有: 运行
无: 返回错误
2. 删除已经运行过的docker
docker rm $(docker ps -aq)
docker是怎么工作的
docker是一个client-service 结构的系统,docker的守护线程运行在主机上,通过socket从客户端访问
dockerservice接收到的docker-client的指令 就会执行这个命令
docker为什么比虚拟机快
帮助命令:
docker version
docker info
docker 命令 -- help
命令文档:https://docs.docker.com/reference/
容器命令:
有了镜像才可以后容器
docker run
--name 容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看当前内容
-p 指定容器的端口 -p
-P 随机指定端口
docker run -d --name nginx001 -p 8083:80 nginx
进入容器内部:
docker exec -it tomcat001 /bin/bash
退出容器命令:
exit
查看运行的容器命令
docker ps 当前在运行
docker ps -a 历史运行的命令
常用的基本命令
docker run -d tomcat
问题: docker ps 发现tomcat停止了
docker容器使用后台运行 就必须要有一个前台进程
查看日志命令:
查看docker容器内部的命令 ps:
容器的元信息:
docker inspect id
进入当前正在运行的容器:
如修改配置
1.docker exec -it 容器id /bin/bash 进入容器后打开一个新的终端
2.docker attach 容器id 进入容器正在执行终端
可视化
portainer
安装命令:
docker run -d -p 8083:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker/sock --privileged=true portainer/portainer
docker 镜像
镜像是一个轻量级的,可执行的独立软件包 永凯打包软件运行环境和基于运行环境开发的软件 包含运行某个软件所需要的所有内容,代码 运行时 库 环境 和配置变文件
unionfs (联合文件系统)
bootsfs
rootfs
提交自己的容器、
docker commit -m= "提交描述" -a="作者" 容器id 目标镜像名:[tag]
数据卷
直接使用命令挂载
docker run -it -v 主机目录:容器目录
docker inspect id 查看运行容器的详细信息
docker run -it -v /home/allSatrt/xh/:/usr/local/tomcat/txh tomcat:8.5.29 /bin/bash
具名挂载 匿名挂载
区分具名挂载 还是匿名挂载
实现容器之间数据同步 volumes (多个容器实现数据共享)
docker volume
初始dockerfile
dockerfile构建docker镜像的构建文件
1.创建一个dockerfile
2.文件指令都是大写
3.指令是顺序执行 #表示注释
FROM (*指定基础镜像)
指令:{
build :{
FROM : 基础镜像
MAINTAINER: 维护者信息
COPY: 类似add 将我们的3文件copy到镜像中
ADD : tomcat的镜像 这个tomcat压缩包 添加内容
RUN : docker构建的时候需要运行的命令
ONBUILD : 当构建一个被继承的dockerfile 这个时候就会运行 ONBUILD 的指令 触发指令
.dockerignore
}
Both:{
WORKDIR 镜像的工作目录 运行镜像指定进入的目录
USER
}
RUN:{
CMD: 指定容器启动的时候运行的命令,只有一个会会生效 可被替代
ENV: 构建的时候设置环境变量
EXPOSE:暴露端口配置 -p
VOLUME: 挂载的目录位置
ENTRYPOINT:指定容器启动的时候运行的命令 可以追加命令
}
CMD 和 ENTRYPOINT 区别:
CMD 指定这个容器启动的时候要运行的命令 只有最后一个会生效 可被替代
ENTRYPOINT 指定这个容器启动的时候需要运行的命令 可以追加命令
}
最基础的镜像
FROM scratch
docker build -f dockerfile路径 -t 镜像目录 空格.(一定需要)
docker build -f dockerfilepath -t xh/tomcat:1.0 .
docker history 查看docker 镜像的历史
docker 网络
eth0@if43: docker分配的地址
docker之间相互通信
使用--link 解决根据ip不能连接问题
redis 集群
docker network crate redis --subnet 172.38.0.0/16

浙公网安备 33010602011771号