docker使用总结
一、docker的基本概念 ( 资源:Docker中国源)
- 相关连接:不错的docker入门笔记(详细1) docker使用误区 为何使用docker(其他1) Ubuntu安装docker docker体系介绍(详细1) 容器,镜像, 仓库 docker访问宿主计算机 一图看尽Docker容器文件系统 Docker镜像内容docker网络相关 Dockerfile简介Dockerfile中命令详解 如何在docker和宿主机之间复制文件 Docker的网络类型和固定IP设置 Docker Compose使用简介 docker+k8s基础篇一 Docker-Docker容器跨主机通信 docker 容器里面无法vi编辑的解决方法 Docker,Docker Compose,Docker Swarm,Kubernetes之间的区别 docker管理工具UI
- Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup, namespace,以及AUFS类的UnionFS(具体实现为overlay2)等技术(三大要点),对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docke最初实现是基于LXC(即Linux container)。
- Docker可以做到秒级、甚至毫秒级的启动时间;善于处理集中爆发的服务器使用压力;以很轻易的将在一个平台上运行的应用,迁移到另一个平台上;使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。
- docker、oci、runc以及kubernetes:(参考链接1)
- Docker技术三大要点:cgroup, namespace和unionFS的理解 (参考链接1)
- 众 所周知,Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。
- Docker内置这四种网络,使用该docker run --network=<NETWORK>选项指定,bridge 模式为默认选项。host模式:使用 --net=host 指定;none模式:使用 --net=none 指定;bridge模式:使用 --net=bridge 指定,为默认设置;container模式:使用 --net=container:NAME_or_ID 指定。 (参考链接1)
二、docker基本的使用
0 ) docker 常用命令:
1)基本docker命令:sudo docker version Docker版本信息; sudo docker info Docker运行状态
2)docker 安装mysql数据库并启动 参考链接1 参考链接2 docker上启动mysql
1)docker pull mysql
2)docker run --name htc-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql 【启动容器htc-mysql并设置root密码123456,且将容器内部的端口3306映射到上级的机器端口3306】
3)docker exec -it &htc-mysql& /bin/bash 【进入mysql数据库容器】
4)mysql --host=localhost -u root -p 【进入本机mysql数据库】
5)mysql> update user set password_expired = "Y"where user="root";
6)mysql> ALTER USER'root'@'locahost' IDENTIFIED WITH mysql_native_password BY '123456'; (docker版本和mysql版本不配产生的问题)
7)mysql> grant all privileges on *.* to 'root'@'%';
8)flush privileges;
3) 安装NGINX镜像后本地启动NGINX: docker run -p 8080:80 -d docker.io/nginx:docker部署nginx : (参考链接1)
4)docker的网络:1、宿主主机访问虚拟机中的docker服务配置: (参考链接1 2)
5)docker一句话:1:安装 yum install docker 2:启动、停止docker: service docker start\stop 3:显示已经安装的镜像 docker image 4:列出已经安装的容器:docker ps -a 5:docker ps 列出正在运行的容器 6:docker run ($容器名称) 创建容器 7:删除 容器:docker rm ($容器名称) 8:docker stop/start ($容器名称)[启动、停止容器]
6) docker网络中的容器如果需要互相之间通讯则,需要修改下列文件:/etc/sysconfig/docker-network 中的DOCKER_NETWORK_OPTIONS= 为“--icc=true”
7) docker中容器停停止了,需要重启又生效,如果再通过docker run安装镜像,则原来的容器配置就看不到了。
三,docker的排错与优化
1)Docker报错 WARNING: IPv4 forwarding is disabled. Networking will not work.:解决办法:# vim /usr/lib/sysctl.d/00-system.conf
添加如下代码: net.ipv4.ip_forward=1
重启network服务 # systemctl restart network
2)关于Docker目录挂载:# docker run -it -v /test:/soft centos /bin/bash (譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录)参考:(参考链接1)
3)清理docker的目录文件等(docker info|grep -i storage ~~~||~~~ docker system prune ):(参考链接1 )