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

posted @ 2021-06-11 16:10  平山雪飞侠  阅读(105)  评论(0)    收藏  举报