docker类式于为沙盒中运行的线程,可以看做是一个简易的linux系统,容器的ID与名称都是唯一的,可以通过ID的前3位进行访问这个容器,Docker 使用一个叫做 UnionFS 的层级文件系统进行镜像操作。容器对镜像文件的所有操作均是在虚拟出的“改动层”上进行的,与docker相关的本地资源都放在/var/lib/docker/目录下。Docker的理念是一个容器只运行一个服务,从宿主机进入容器是通过exec命令进去的,但是如果要从远程进入,除了给容器安装相应的ssh服务,目前没有更好的办法。

        docker提供了数据卷-v参数实现,用于保存数据,比如数据库日志文件等,需要将容器的目录挂在在宿主机上,这样在宿主机上,就可以看到各个容器里面的数据信息,但是有一个前提,你需要把容器什么路径给挂载出去,这个时候,可以通过docker inspect 容器/镜像 命令查看该镜像的相关路径信息,比如nginx,你需要进入那个nginx容器里面,查看配置conf.xml文件,配置反向代理,配置好后,记得要使用docker commit命令保存一下,否则你的所有修改,将在下一次启动时将会丢失,我配置mysql的时候,看到默认提供的账户密码,突然间就不知道该怎么用,因为有些账户比如root只能本地访问。远程访问的时候 只能用admin,但是我只用admin账户的时候,提示错误,要我必须制定root密码-e  MY-ROOT-PASSWORD,oracle的远程访问,还没有用过,如果实际应用的话,建议还是自己写一个dockfile比较好,至少挂载目录都可以确定。

      如何启动多个docker容器为系统服务,可以参照linux中脚本来搞。(1)、root权限编辑/etc/rc.d/rc.local     cd /etc/rc.d/    vi rc.local  /autoStart.sh (2)、在这个文件加上你要执行的脚本,全部内容如下:#!/bin/sh   autoStart.sh    docker start mysql  dockerui nginx redis.然后赋予这个脚本权限,chomd 777 /autoStart.sh

        dockerfile一般由基础镜像信息,维护者信息,镜像操作指令和容器启动命令四部分组成,可以通过docker build -t   标签名称 dockefile的路径 命令进行创建镜像。然后使用docker run  --name   镜像别名 镜像名称

可以通过exec命令进入这个容器中进行访问,退出用exec命令


(HOST) # docker exec -it container-id/container-name bash
(CONTAINER) root@1f608dc4e5b4:/# echo hello docker > /message.txt
(CONTAINER) root@1f608dc4e5b4:/# cat /message.txt
hello docker
(CONTAINER) root@1f608dc4e5b4:/# exit

          每次运行 docker run 命令的时候,Docker 都会指定新建容器,并用命名空间进行隔离,对比起 ID,容器的名称更加易读。你也可以在 docker run 的时候用 --name 参数指定容器的名称。

             容器之间相互通信,可以通过--link指令进行,容器与宿主机之间的文件操作,有两种方式,一种是通过-v 把容器里面的数据挂载到宿主机上面(一般安装数据库需要这样的操作)

docker run -d -p 9999:8080  -p 1522:1521 -v /data/data/:/data  -v /data/log:/log --name oracle   wnameless/oracle-xe-11g

譬如我要启动一个CentOS容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:

# docker run -it -v /test:/soft centos /bin/bash

这样在容器启动后,容器内会自动创建/soft的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。另外一种是通过cp命令,实现文件之间的复制, 从主机复制到容器sudo docker cp   host_path     containerID:container_path

从容器复制到主机sudo docker cp    containerID:container_path    host_path

        如何给容器固定一个IP(安装数据库中常常需要这样的设置),可以使用pipwork工具实现。docker的图形管理页面工具有很多,常见的有dickerUI、seagull等等。

        如何备份一份容器文件,有两种方式,用export这种方式导出的数据不全、container-backup为备份进程所对应的镜像的名称,~/container-backup.tar 意思为主目录下,名称为container-backup.tar


docker commit -p contain_Id container-backup
docker save -o ~/container-backup.tar container-backup
docker load -i ~/container-backup.tar

检查镜像或者容器的参数,默认返回 JSON 格式)比如查看宿主机的挂载目录

container中开多个窗口 docker docker运行多个容器_Docker

     为了更好的管理镜像,可以在本地搭建一个私有的仓库,通过registry镜像创建(首先先docker pull redistry),默认目录是在/tmp/registry下面

docker run -d -p 5000:5000 -v /zssHome:/tmp/registry  --name  House  registry

这将自动下载,并启动一个registry容器,此时在本地将启动一个私有仓库服务,监听端口为5000

centos系统中docker配置启动文件在 /etc/sysconfig/docker里面添加命令即可,


[root@localhost ~]# vim /etc/sysconfig/docker
修改此行
OPTIONS='--selinux-enabled --insecure-registry 192.168.0.109:5000'        //添加私有仓库地址
[root@localhost ~]# service docker restart
Redirecting to /bin/systemctl restart  docker.service

参考教材:Docker技术入门与实战、Spring  boot实战