docker使用总结

一、docker的基本概念  资源:Docker中国源

 

  • 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;
View Code

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  )

posted @ 2018-12-08 22:49  TonyHuang123  阅读(239)  评论(0编辑  收藏  举报