镜像:
docker镜像就好比是一个模板,可以通过这个模板来创建多个容器服务(最终服务运行或者项目运行就是在容器中的)
容器:
Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的。容器可以启动、停止、删除等基本命令。目前就可以把这个容器理解为就是一个简易的linux系统。
仓库:
仓库就是存放镜像的地方;仓库分为共有仓库和私有仓库。
6.安装Docker环境准备
- 需要Linux基础
- CentOS7
- 我们使用XShell
环境查看
# 系统内核是 3.10以上的 [centos4@bogon /]$ uname -r 3.10.0-693.el7.x86_64
# 系统版本 [centos4@bogon /]$ cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"
安装
帮助文档:
# 1.卸载旧的版本
$ sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
# 2.需要的安装包
sudo yum install -y yum-utils
# 3.设置镜像仓库
sudo yum-config-manager
--add-repo
https://download.docker.com/linux/centos/docker-ce.repo # 默认是国外的
# 推荐使用阿里云的
sudo yum-config-manager
--add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4.更新
yum makecache fast
# 5.安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 6.启动docker
sudo systemctl start docker
# 7.测试docker
sudo docker run hello-world
# 8.测试docker镜像
docker images
# 删除docker
yum remove docker-ce
7.阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://kaxr8ik8.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
8.Run的流程和Docker原理
9.docker的常用命令
帮助命令
docker version # 显示docker版本信息 docker info # 显示docker的系统信息,包括镜像和容器的数量 docker 命令 --help 帮助命令 docker images # 查看所有镜像 docker pull mysql # 下载mysql镜像 docker rmi -f e73346bdf465 # 删除镜像 docker rmi -f $(docker images -aq) #删除全部镜像10.容器命令
说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
# 1.下载centos docker pull centos # 2.新建容器并启动 docker run [可选参数] image # 参数说明 --name="Name" # 容器名字 tomcat01 tomcat02 用来区分容器 -d # 后台方式运行 -it # 使用交互方式运行,进入容器查看内容 -p # 指定容器的端口 -p 8080:8080 -p ip:主机端口 容器端口 -p 主机端口:容器端口(常用) -p 容器端口 容器端口 -P # 随机指定端口
# 1.启动并进入容器 docker run -it centos /bin/bash # 2.退出容器 exit # 3.列出当前正在运行的容器 docker ps # 4.列出当前正在运行的容器+历史运行过的容器 docker ps -a # 5.显示最近创建的容器 docker ps -a -n=1 # 6.只显示容器的编号 docker ps -aq
# 1.exit 直接停止并退出容器 # 2.查询运行中的镜像 docker ps #发现无 # 3.启动centos镜像 docker run -it centos /bin/bash # 4.容器不停止退出 Ctrl + p + Q
删除容器
1.docker rm 容器id #删除指定容器 不能删除正在运行的容器 2.docker rm -f $(docker ps -aq) #删除所有的容器 3.docker ps -a -q|xargs docker rm #删除所有的容器
启动和停止容器的操作
docker start 容器id # 启动容器 docker restart 容器id # 重启容器 docker stop 容器id # 停止当前正在运行的容器 docker kill 容器id # 强制停止当前容器11.常用其它命令
后台启动命令
# 命令 docker run -d 镜像名 docker run -d centos # 问题docker ps,发现centos停止了 # 常见的坑:docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止 # nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了 。
查看日志
docker logs -f -t --tail 10 3a2e6b73b4ed14.部署Nginx
# 1.搜索nginx docker search nginx # 2.安装nginx docker pull nginx # 3.启动 docker run -d --name nginx01 -p 3344:80 nginx # -d 后台运行 # --name 给容器命名 # -p 宿主机端口:容器内部端口 # 4.本地访问nginx curl localhost:3344 # 5.宿主机访问 http://192.168.32.131:3344/ # 6.进入nginx docker exec -it nginx01 /bin/bash # 7.进入 cd /etc/nginx # 8.停止 docker stop 45375945
15.部署Tomcat思考问题:
我们每次改动nginx配置文件,都需要进入容器内部?十分麻烦,我要是可以在容器外部提供一个映射路径,达到在容器修改文件名,容器内部就可以自动修改 -v 数据卷
# 官方的使用 docker run -it tomcat:9.0 # 我们之前的穷的那个都是后台,停止了容器之后,容器还是可以查到 docker run -it --rm,一般用来测试,用完删除。16.部署ES+Kibana 17.Portainer可视化面板安装 18.镜像原理之联合文件系统 19.镜像原理之分层立即 20.Commit镜像
持续更新中…



