玖叶教程网

前端编程开发入门

Docker基本操作

一、docker的思想

  1、集装箱:会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿到这个集装箱就可以了。

  2、标准化:

    1)、运输的标准化:Docker有一个码头,所有上传的集装箱都放在这个码头上,当谁需要某一个环境,就直接指派大海去搬运这个集装箱就可以了。

    2)、命令的标准化:Docker提供了一系列的命令,帮助我们去获取集装箱等操作。

    3)、提供了REST的API:衍生出了很多的图形化界面,Rancher。

  3、隔离性:

    Docker在运行集装箱的内容时,会在Linxu内核中,单独的开辟一片空间,这片空间不会影响到其他程序。

  4、docker底层运行原理

二、组成

  注册中心:超级码头,上面放的就是集装箱

  镜像:集装箱

  容器:运行起来的镜像

三、Docker的基本操作

  准备工作:

systemctl disable firewalld
systemctl stop firewalld
setenforce 0

  1、安装docker

    下载关于Docker的依赖环境

yum -y install yum-utils device-mapper-persisten-data lvm2

    设置一下下载Docker的镜像源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    安装docker

yum makecache fast 
yum -y install docker-ce

    启动,并设置为开机自动启动,测试

systemctl start docker                  启动docker
systemctl enable docker                 设置开机自启
docker run hello-world                  测试

四、docker的基本命令

  1、查看版本

[root@controller ~]# docker version                                                     查看Docker版本号
Client:
 Version:         1.13.1                                                                客户端版本号
 API version:     1.26
 Package version: docker-1.13.1-162.git64e9980.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      64e9980/1.13.1
 Built:           Wed Jul  1 14:56:42 2020
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1                                                                 服务端版本号
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-162.git64e9980.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      64e9980/1.13.1
 Built:           Wed Jul  1 14:56:42 2020
 OS/Arch:         linux/amd64
 Experimental:    false

  2、docker网桥 

  3、Docker配置文件:

    /etc/sysconfig/docker

    /usr/lib/systemd/system/docker.service

  4、Docker日志:Docker的日志文件写入到 /var/log/message里

[root@controller ~]# tail -f /var/log/messages |grep docker

  5、帮助命令

  6、镜像命令

  7、查找镜像命令--search

  8、删除镜像命令

  9、运行一个容器

  10、退出容器

  11、停止容器

  12、进入容器

  13、拷贝容器内文件

  14、汇总

五、docker的中央仓库

  1、Docker官方的中央仓库:这个仓库是镜像最全的,但是下载速度较慢。

    https://hub.docker.com/

  2、国内的镜像网站:网易蜂巢,daoCloud

    http://c.163yun.com/hub#/home

    http://hub.daocloud.io/ (推荐使用)

  3、在公司内部会采用私服的方式拉去镜像(添加配置)  

需要在 /etc/docker/daemon.json,没有则添加此文件
{
      "registry-mirrors": ["https://registry.docker-cn.com"],
      "insecure-registries":["ip:port"]       
}
重启两个服务
systemctl daemon-reload
systemctl restart docker

六、镜像的操作

  1、UnionFS(联合文件系统)

  2、Docker镜像加载原理

  3、镜像加速,获取加速器地址

    centos6镜像加速配置:

    测试:

    centos7镜像加速配置:

  拉取镜像到本地

docker pull 镜像名称[:tag]
举个例子
docker pull daocloud.io/library/tomcat:8.5.15-jre8

  镜像命令

docker images                                         查看本地所有的镜像
docker rmi b8dfe9ade316                               删除本地镜像,本地镜像必须处于停止状态
docker rmi -f b8df                                    强制删除
docker save -o ./tomcat.image b8dfe9ade316            导出镜像到本地
docker load -i tomcat.image                           导入本地镜像
docker tag b8dfe9ade316 tomcat:8.5                    修改名字

七、容器的操作  

docker run 镜像标识|镜像名称[:tag]                                           运行容器,简单操作
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像标识|镜像名称[:tag]     

-d后台运行容器,
-p宿主机端口:容器端口,为了映射当前linux的端口和容器端口
-P:随机分配端口
--name 容器名称:指定容器的名称
举例: 
docker run -d -p 8080:8080 --name tomcat b8dfe9ade316
docker create --name java -it java /bin/bash                             创建名为java的容器,但是不启动

  提交容器

docker commit 02162513c338 myjava                                        以本地容器02162513c338为源,制作名为myjava的本地镜像

  查看容器

docker ps [-qa]
-a:查看全部容器,包括没有运行的
-q:只查看容器的标识

  查看容器的日志

docker logs -f 49fc6dffb6df

  进入容器内部

docker exec -it 容器id bash
docker exec -it 49fc6dffb6df /bin/bash    举个例子

  删除容器(删除容器前。需要先停止容器)

docker stop 容器id                     停止指定容器
docker stop $(docker ps -qa)          停止全部容器
docker rm 容器id                       删除指定容器
docker rm $(docker ps -qa)            删除全部容器


  启动容器

docker start 容器id

八、Docker的应用

docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 daocloud.io/library/mysql:5.7.4   运行一个容器,必须指定root初始密码

  具体应用例子见下一篇博客

九、数据卷

  数据卷:将宿主机的一个目录映射到容器的 一个目录中。

  可以在宿主机中操作目录中的内容,那么容器内部映射的文件,也会跟着一起改变。

docker volume create tomcat                                     创建数据卷,数据卷默认存放位置:/var/lib/docker/volumes
docker volume inspect tomcat                                    查看单个数据卷
docker volume ls                                                查看所有数据卷
docker volume rm tomcat                                         删除数据卷
docker run -v shujujuan:/usr/local/ 9484402b4b7c                应用数据卷,在创建容器的时候设置映射,没有shujujuan则docker自动创建
docker run -v/opt/volume_tomcat:/usr/local/ 9484402b4b7c        指定数据卷存放位置
docker run -d -p 8080:8080 -v tomcat:/usr/local/ b7370dcde632

十、Docker自定义镜像

  1、准备一个Dockerfile文件

vim Dockerfile

from php:7.2-apache
copy wordpress /var/www/html

参数:
from:指定当前自定义镜像依赖的环境
copy:将相对路径下的内容复制到自定义镜像中
workdir:声明镜像的默认工作目录
cmd:需要执行的命令(在workdir下执行的,cmd可以写多的,只以最后一个为准)

  2、准备好项目

  3、通过Dockerfile的命令制作镜像

docker build -t ssm-wordpress:1.0.0 .                      在当前目录执行

  4、依赖自定义镜像启动一个容器

docker run -d -p 81:80 --name custom-ssm-wordpress 4100c40cae59

  5、浏览器查看

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言