1、安装docker
yum -y install docker
2、启动docker 并设置为开机启动
service docker start
chkconfig docker on
或者
systemctl start docker.service
systemctl enable docker.service
3、安装镜像centos
docker pull centos
安装成功后 通过命令 docker images 查看centos 的镜像是否成功安装
4、启动容器,并进入容器控制台
docker run -i -t centos /bin/bash
centOS 容器已经被启动,并且我们得到了 bash 提示符。在 docker 命令中我们使用了 “-i 捕获标准输入输出”和 “-t 分配一个终端或控制台”选项。若要断开与容器的连接,输入 exit。
- [root@cd05639b3f5c /]#exit
- exit
5、查询docker中运行的容器
docker ps
6、退出控制台后如何进入容器
docker 中用 nsenter 工具进入容器控制台
首先
docker inspect --format "{{ .State.Pid }}" 容器id
获取docker容器的进程
nsenter --target xxx(进程号) --mount --uts --ipc --net --pid
接着就进入docker容器了
7、接着在容器中,与宿主机同步文件夹,才能用来部署项目
创建一个普通容器当做数据卷容器(就是专门用来同步文件的容器吧)
docker run -v /home/docker_files:/usr/docker_files --name dataVol centos /bin/bash
docker run -v (本机要共享的目录):(容器上同步的目录) --name (数据卷容器的名称) centos /bin/bash
接着创建容器并且设置使用这个数据卷
docker run -it --volumes-from dataVol centos /bin/bash
然后在/usr/docker_files目录下就可以看到同步的文件了
坑!!!:
在容器中会遇到
访问共享目录中ls命令及一些其他操作发生问题(访问/usr/docker_files 目录时)
cannot open directory .: Permission denied
这时候要在宿主机上设置
selinux的状态
getenforce 可以查看状态
setenforce 命令设置临时关闭,不用重启生效。
setenforce 0
这样就可以正常的同步并且操作同步文件夹内的数据了
8、docker中批量删除空的镜像
docker rmi $(docker images | awk '/^<none>/ { print $3 }')
docker rmi 镜像id
或
docker rmi REPOSITORY:TAG
9、把容器的状态保存进镜像,以便下次启动容器就无需重复配置或同步一些文件了
docker commit 725437005b50 centos:my_centos04
讲解
docker commit 容器idREPOSITORY:TAG
下次启动保存后的容器即可
docker run -it --volumes-from dataVol centos:my_centos04 /bin/bash
docker run -it --volumes-from dataVol REPOSITORY:TAG /bin/bash
docker tag 8a57cd92be4d centos:my_centos03
docker tag image的id REPOSITORY:TAG
这样子docker 安装 同步文件夹 和操作容器 从宿主机进入容器控制台的方法就解决了
接下去就可以将docker 当做小型虚拟机
通过同步文件夹把tomcat 和jdk 同步到docker项目 并启动tomcat
重要的是启动容器时需要配置容器对外映射的端口号
docker run -it --volumes-from dataVol -p 8080:8080 centos:my_centos04 /bin/bash
讲解
docker run -it --volumes-from 数据卷名称 -p 端口号:端口号 REPOSITORY:TAG /bin/bash
-p后面的端口
把宿主端口号暴露给docker的端口号
之后就可以使用宿主主机的IP地址和这个端口来访问docker容器
启动后就可以通过浏览器输入
就会出现tomcat的页面啦
搞定!
有什么错误希望能教教