Docker教程---基本操作

一、docker的思想

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

  2、标准化:

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

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

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

  3、隔离性:

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

二、组成

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

  镜像:集装箱

  容器:运行起来的镜像

三、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 makacache fast
yum -y install docker-ce

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

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

四、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

 五、镜像的操作

  拉取镜像到本地

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

  镜像命令

docker images                                         查看本地所有的镜像
docker rmi b8dfe9ade316 删除本地镜像,本地镜像必须处于停止状态
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的端口和容器端口
--name 容器名称:指定容器的名称
举例:
docker run -d -p 8080:8080 --name tomcat b8dfe9ade316

   查看容器

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 cp 文件名 容器id:容器内部路径 复制宿主机文件至容器里面
docker cp Discuz_X3.2_SC_UTF8.zip 9484402b4b7c:/usr/local/ 举个例子

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

八、数据卷

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

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

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自定义镜像

  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、浏览器查看

原文地址:https://www.cnblogs.com/aqicheng/p/13426775.html