docker安装与使用

Docker

对比传统虚拟机总结

特性容器虚拟机
启动秒级分钟级
硬盘使用一般为 MB一般为 GB
性能接近原生弱于
系统支持量单机支持上千个容器一般几十个

CentOS 7(使用 yum 进行安装)

#1: 安装必要的一些系统工具
	yum install -y yum-utils device-mapper-persistent-data lvm2
#2: 添加软件源信息
	yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#3: 更新并安装Docker-CE
	yum makecache fast
	yum -y install docker-ce
#4: 开启Docker服务
	service docker start

—镜像常用命令

docker images         											// 查看镜像
docker search 文件名    										// 搜索镜像
docker pull    文件名   										// 下载镜像
docker push  文件名   											// 上传镜像
docker load < 文件名.tar  				   // 导入镜像文件(格式为.tar) 例:docker load <nginx.tar
docker save image_name > xx.tar  		   // 导出镜像包,镜像名可以docker images查看,REPOSITORY下面名字
docker run -it 镜像名称:镜像标签 启动命令   // 启动运行镜像 例:docker run -it night:night01 bash
//-i 表示交互 -t表示终端
例:docker run -it centos /usr/bin/python 						// 只要可以执行的命令都可以
[root@docker_1 ~]# docker run -it centos /bin/ls
anaconda-post.log  dev home  lib64  mnt  proc run   srv  tmp var
bin   etc lib   media  opt  root sbin  sys  usr
docker tag 														 // 修改镜像名称和标签
docker ps 									       	    // 查看已开启的容器加 -a 查看所有容器
docker history 镜像名 							    	// 查看镜像制作历叱
docker rmi 镜像名 								     	// 删除本地镜像
docker save 镜像名 > 文件名.tar   				    	 // 镜像另存为tar包

—容器常用命令

--后面加容器ID

docker run //运行容器

//-i交互式 -t终端 -d后台进程

//注意:启用一个有交互式的进程又要放后台进程用-itd , 单纯无交互放后台直接-d即可

docker ps 					// 查看容器列表 没加-a表示正在运行的容器 加-a查看所有容器 -q查看ID号
docker stop 				// 关闭容器
[root@docker_1 docker]# docker stop $(docker ps -q) //停用全部运行中的容器
docker start 				// 启动容器
docker restart 				// 重启容器
docker attach|exec 			// 进入容器 退出挂后台要用CTRL+P+Q
docker inspect 				// 查看容器底层信息 常用于查看服务IP和端口
docker top 					// 查看容器进程列表 相当于在容器里执行ps查看这个容器的进程
//容器的进程在运行它的物理机上可以查看到,隔离性没有KVM那么好
docker rm 					// 删除容器
[root@docker_1 docker]# docker rm $(docker ps -qa)  			// 删除所有容器
[root@docker_1 docker]# docker stop $(docker ps -q) & docker rm $(docker ps -aq)
docker exec -it  容器ID  								// 进入容器 建议用这个连接容器,exit退出后
[root@docker_1 docker]# docker exec -it 19c535ae17b3 bash 		// 要加命令
[root@docker_1 ~]# docker run -d -p 80:80 nginx 

虚拟机:
通过虚拟化技术我们可以在服务上运行多个不同环境的虚拟机,大大提高我们对服务器的利用率!
虚拟机的硬件的弹性扩展也方便了我们后期虚拟机配置的提升
统一的管理平台也会大大降低我们的维护成本

容器:
容器本身的意思是指可以存放东西的器皿,我们这里可以把容器想想成是一个盒子、箱子!里面存放的就是我们要运行的应用:如一个nginx、tomcat
容器技术相对于虚拟机具有哪些特点?
1.体积小
2.启动速度快
3.性能接近原生
4.单节点支持的容器的数量多
6.环境一致性
**

docker的安装

**

Centos7.6
  1.配置docker的yum源,可以使用阿里云的
  2.安装docker-ce
  yum -y install docker-ce
  3.关闭防火墙
  systemctl stop firewalld
  setenforce
  4.启动Docker
  systemctl start docker
  systemctl enable docker
  Docker三个基本概念
  	1.镜像仓库(hub.docker.com 镜像仓库)
  	2.镜像
  	3.容器
  Docker常用命令:
    对镜像的操作:
    1.获取镜像
      增:
       docker pull  镜像名:TAG
      删:
       删除镜像,我们不能直接删除有容器依赖的镜像
        docker rmi     镜像名/ID
        docker rmi -f  镜像名/ID
      改:
        docker tag
      查:
        查看本地镜像
        docker images

对容器的操作:
   增:
     1.创建并运行容器
        docker run  --name 容器名字  -d  -p  宿主机端口:容器端口   基础镜像

   			例子: docker run --name web1 -d -p 80:80 nginx:latest
            docker  run --name learn1  -it busybox /bin/sh  以可交互的方式运行一个容器
       删:
         删除容器,我们不能直接删除一个正在运行的容器,需要先停止再删除,或者-f,强制删除
         docker rm web1
         docker rm -f web1
       改:
          容器重命名
          docker rename                     // 修改容器名字
          容器启动和停止
          docker  start/stop/restart        // 容器名
          docker  pause      容器名          // 暂停容器
          docker  unpause    容器名          // 取消暂停容器
          docker  update                    // 更新容器的配置
          docker  cp                        // 容器和宿主机之间复制文件,默认覆盖已有的文件
          docker  exec                      // 在运行的容器中执行一条命令
          docker  exec -it  web1 /bin/bash  // 以交互的方式进入web1容器操作


       查:
          查看正在运行的容器
          docker ps
          查看所有的容器
          docker ps -a
          docker stats 容器名       // 查看容器运行状态(CPU\内存\网络IO\磁盘IO使用情况)
          docker top  容器名        // 查看容器正在运行的进程
          docker inspect 容器/镜像   // 查看容器或者镜像的底层信息,元数据,比如查看ip、主机名、数据卷、CMD等信息
          docker logs [-f]          // 查看容器内部进程的日志

构建镜像:

基于一个容器构建一个新镜像

1.运行一个基于(Centos/Ubuntu/alpine)启动一个容器,在容器内部执行更改操作,比如安装一个工具或者服务!
2.使用docker commit 将容器提交更改并生成一个新的镜像,比如有个叫ztt的容器,基于它创建一个镜像nginx:1.0
例子:docker commit ztt nginx:1.0

补全命令:

yum -y install bash-completion-extras.noarch pletion

数据卷

数据卷的增删改查
docker volume create 卷名                        // 创建一个数据卷
						 ls				     	// 查看已有的数据卷
						 rm 				    // 删除一个或多个数据卷
						 prune			        // 删除所有未被使用的数据卷
						 inspect		        // 显示一个或者多个卷的详细信息
默认创建的数据卷放在:/var/lib/docker/volume
数据卷的服务对象是容器,当容器创建的时候可以指定挂在那个卷
docker run --name wed1 -d -p 80:80  -v html:/usr/share/nginx/html  10.30.5.120/docker/nginx

匿名卷

自动创建
docker run --name wed1 -d -p 80:80 -v /usr/share/nginx/html  10.30.5.120/docker/nginx
我们也可以在构建镜像的时候,将一些重要的目录里设置为挂载点,如果容器内某个目录被定义为挂载点,name在创建的时候,这个挂载点,如果不指定挂载数据卷的话,那么将会自动挂载一个匿名卷到挂载点,保证这个挂载点下的数据肯定是写入到卷当中的!

Docker部署wordpress

需要运行两个容器,一个mysql容器一个wordpress容器,他们都有自带的一些变量,方便我们去部署他们

#####################################################################################

mysql镜像内置变量
    WORDPRESS_DB_HOST							// MySQL数据库主机IP地址
    WORDPRESS_DB_PORT							// MySQL服务的端口
    WORDPRESS_DB_NAME							// 数据库名字
    WORDPRESS_DB_PASSWORD                       // 数据库密码
    WORDPRESS_DB_DATABASE					    // 创建数据库名

创建MySQL容器

docker run --name mysql -d -p 3306:3306 -v data:/var/lib/mysql  \
> -e MYSQL_ROOT_PASSWORD=123 \
> -e MYSQL_DATABASE=wordpress \
> -e MYSQL_USER=tom \
> -e MYSQL_PASSWORD=123456  --restart always  10.30.5.120/docker/mysql:5.6

#####################################################################################

wordpress镜像内置的变量
	WORDPRESS_DB_HOST                 // MySQL数据库主机ip地址
	WORDPRESS_DB_PORT				  // Mysql服务的端口
	WORDPRESS_DB_NAME				  // 数据库的名字
	WORDPRESS_DB_USER                 // 登录MySQL的用户
	WORDPRESS_DB_PASSWORD             // 登录用户密码
创建wordpress容器
docker run --name wordpress -d -p 80:80 \
-e WORDPRESS_DB_HOST=192.168.189.171 \
-e WORDPRESS_DB_NAME=wordpress \
-e WORDPRESS_DB_USER=tom \
-e WORDPRESS_DB_PASSWORD=123456 --restart always --link mysql 10.30.5.120/docker/wordpress

DB_PASSWORD // 登录用户密码

创建wordpress容器
docker run --name wordpress -d -p 80:80 \
-e WORDPRESS_DB_HOST=192.168.189.171 \
-e WORDPRESS_DB_NAME=wordpress \
-e WORDPRESS_DB_USER=tom \
-e WORDPRESS_DB_PASSWORD=123456 --restart always --link mysql 10.30.5.120/docker/wordpress
``

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值