-
Notifications
You must be signed in to change notification settings - Fork 0
yankai0219/docker
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
## Docker 基本操作 0. docker所有命令都需要root权限,因此通过这个加入到root组,之后所有的都不需要sudo前缀了。 sudo usermod -a -G root yankai 1. 根据Dockerfile构造Images docker build -f xxx.Dockerfile.xx -t image_name . 2. 根据已经构造的Images建立container docker run -d -p 8090:80 --name instance_name img_name 3. 查看docker中进程情况 docker ps -a 4. 进入已经开启的container内部(不提倡) docker exec -it instance_name bash 5. 查看container的端口 docker port instance_name 6. 开启和关闭某个container docker start web docker stop web 7. 查看某个container的情况 docker inspect instance_name 8. 将某个container保存为images docker commit container_id image_name 9. 绑定数据卷Mount a volume on the container docker run -d -P --name cb -v /Users/yankai/Documents/markdown/study/docker/volume/:/tmp/ yk/centos_base sh /tmp/dead_while.sh 其中volume目录下有个dead_while.sh文件,文件内容如下: #!/bin/sh while true;do echo "hello" done 特别注意:如果是在Mac或Windows上使用,那么你的docker daemon只允许你到达你的OSX/Windows文件系统。也就是Docker Machine 尝试自动分享你的/Users(OSX)或C:\Users(windows)目录,因此你要使用/Users/<path>:/<container path> .. (OSX) or /c/Users/<path>:<container path .. 10. 查看container的标准输出 docker logs container_name docker logs -f container_name 类似tail -f 11. 查看container内部进程 docker top container_name 12. 查找某个Images docker search sinatra docker pull training/sinatra docker run -it training/sinatra 13. 设置一个Image的tags docker tag image_id image_name 14. 将一个Image上推到docker hub docker push docker_images 15. 删除一个Image docker rmi image_name[image_id] 16. 将一个container变为Image docker commit -m "modify message" -a "name" image_id new_image_name ## 如何使用 1. Dockfile.base 基础:centos:centos 目的:构造基础Centos环境 命令:docker build -f Dockfile.base -t yk/centos_base . 2. Dockfile.nginx 基础:Dockfile.base 目的:构造基础的Nginx的环境,进行Nginx配置。 命令:docker build -f Dockfile.nginx -t yk/centos_nginx . 说明:本Nginx环境的nginx.conf只有一个用于测试的server。其他所有虚拟主机的server都要放在conf/include/目录中 生成container:docker run -d -p 8090:80 --name cn yk/centos_nginx 测试:curl localhost:8090 如果显示 nginx on CentOS 6 inside Docker 表示安装成功 3. Dockerfile.php 基础:Dockefile.nginx 目的:基于Nginx环境,构造基础的PHP7.0环境,进行相关PHP配置 命令:docker build -f Dockfile.php -t yk/centos_php . 说明:本PHP环境进行配置 4. Dockerfile.nginx_php 基础:Dockerfile.php 目的:基于PHP环境,构造一个如何使用前述的Images进行测试和开发的用例 命令:docker build -f Dockfile.nginx_php -t yk/centos_nginx_php . 说明:构造测试环境,需要指定特定的nginx配置文件和特定的根目录 生成container命令:docker run -d -p 8091:80 --name cnp yk/centos_nginx_php 测试:curl -H"Host: yankai.demo.test.cn" "http://localhost:8091" 如果显示hello world则表示正常 5. Dockerfile.project_demo 基础:Dockerfile.php 目的:基于PHP环境,构造一个基本的PHP环境。在该PHP环境中,我们将网站的根目录挂载到container中,日志也记录到该网站的根目录中,那么我们就可以基于Container的环境,进行开发 命令:docker build -t yk/centos_project_demo -f Dockerfile.project_demo . 生成container:docker run -d -p 8093:80 -v `pwd`/volume/demo_php:/home/yankai/demo_php yk/centos_project_demo 测试:curl -H"Host: yk.test.cn" "http://localhost:8093" 显示:{"errno":0,"errormsg":{"method":"make","value":"test.make","new":"test.make"}} 并在demo_php/logs目录下面是有日志的
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published