docker 旨在提供一种应用程序的自动化部署解决方案,在VM上装了一个4核8G的centos7.5系统,记录备忘。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
docker images
docker images # 拿到IMAGE ID docker rmi da5939581ac8 # rmi => remove image
docker ps // 查看正在运行的镜像 docker ps -a // 查看所以运行过的镜像(包括正在运行和已经停止运行的)
docker ps -a # 拿到容器的ID docker rm 57611fd7da07 585f867a6858 # 后面可以跟上多个id,也就可以删除多个
docker pull nginx # nginx 就是docker官方镜像网站上的一个nginx镜像
docker run nginx
docker ps // 拿到容器的ID docker stop 0b234366c3d2
docker run -p 8080:80 nginx # 将nginx镜像里的80端口暴露出来,暴露出来的端口为8080,也就是说,可以直接用浏览器访问 http://localhost:8080 就可以了,可以看到一个经典的nginx的默认页面
docker run -d nginx # d => daemon
docker ps # 拿到正在运行容器的ID # 新建一个index.html文件,里面写上 `hello world` docker cp index.html 0b234366c3d2://usr/share/nginx/html # 两次访问 http://localhost:8080 页面就变成了hello world
这时候如果把这个正在运行的docker容器停掉的话,下次再启动的时候,就又是默认的页面了,之前拷贝进去的index.html没有了,怎么保存呢?看下面
docker ps # 拿到正在运行容器的ID docker commit -m 'message' 0b234366c3d2 my-nginx # -m 是保存镜像的描述信息 # 0b234366c3d2 是容器的ID # my-nginx 是保存后的镜像名字
上面说到,如果容器被停止了,那复制到容器里的文件也都没有了,可以用 docker commit 的方式保存下来,是个办法,下面说一下挂载的方法,更简单实用
# 在当前目录新建一个文件夹 `html` # 把上面新建的那个 `index.html` 文件拷贝到html里 docker run -d -p 8080:80 -v $PWD/html:/usr/share/nginx/html nginx # -v 就是挂载参数 # $PWD shell命令,输出当前目录的绝对地址 # 这样挂载后,在本地的html文件夹里修改index.html,然后浏览器访问是实时更新的,停掉了容器也不用担心文件会消失
docker ps # 拿到正在运行容器的ID docker exec -it 0b234366c3d2 bash
Docker中安装DB2的详细教程和DBVisualize的安装教程