1. 制作容器:先拉取一个ubuntu静态容器
sudo docker pull ubuntu:16.04
输入docker images查看,显示如下:
root@instance-tbbjrcnc:/opt# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 5e13f8dd4c1a 3 weeks ago 120MB
启动容器:(-p后面是端口映射,9084:8084意思是把容器内的8084端口,映射到宿主机的9084端口上)
root@instance-tbbjrcnc:/opt# docker run -i -t -p 9084:8084 ubuntu:16.04
root@6a8ef33d88b5:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@6a8ef33d88b5:/#
在容器内安装环境,创建web应用:(我创建了一个web目录,web下创建的工程,启动web服务器的8084端口)
root@82a9cef08f96:/# cd web/masterCloudweb/
root@82a9cef08f96:/web/masterCloudweb# python run_cloudweb.py
8084
此时,在浏览器输入http://宿主机IP:9084/
即可访问到docker里的8084端口显示的页面
到这里容器就完成了
2. 存出镜像:
docker save -o docker_maserweb.tar ubuntu:16.04
此时,会在当前目录下生成一个docker_maserweb.tar的文件,这个文件可以拷去任意服务器
3. 载入镜像:
docker load < docker_maserweb.tar
运行:
docker run -i -t -p 8084:9084 docker/masterweb
即可在浏览器上输入http://宿主机IP:9084/访问了
常用命令:
#启动容器 宿主机端口号映射:容器端口
docker run -i -t -p 9084:8084 -p 9095:8085 docker/masterweb
#查看运行过的createId
docker ps
#运行过的createId实例保存镜像
docker commit createId ubuntu:16.04
#查看静态容器
docker images
#存出镜像
docker save -o docker_maserweb.tar ubuntu:16.04
#载入镜像
docker load < docker_maserweb.tar
#docker 存出容器
docker export charming_rubin > docker_allweb06.tar
#docker 导入容器
docker import - docker_allweb:06 < docker_allweb06.tar
#查看运行中的docker容器
docker ps
#查看运行过的docker容器
docker ps -a
#进入正在运行过的容器中
docker attach 3e
#删除运行过的容器
docker rm XX
#停止容器
docker stop XX
#启动运行过的容器
docker start XX
#删除静态容器
docker rmi XX
#退出容器不杀掉进程
ctrl + p + q
#启动mysql
/etc/init.d/mysql start
#启动mongo
./usr/bin/mongod --config /etc/mongod.conf --fork
#关闭mongo
./mongod --shutdown --config /etc/mongod.conf --fork
附加报错修改:
1. 执行 docker load < debian_cloudweb02.tar 的时候
如果遇到报错:
open /var/lib/docker/tmp/docker-import-190220579/bin/json: no such file or directory
换成命令:cat debian_cloudweb02.tar |docker import - debian_cloudweb02
2. 执行 docker run -i -t -p 3307:3306 -p 9084:8084 debian_cloudweb02 报错
~/docker# docker run -i -t -p 3307:3306 -p 9084:8084 debian_cloudweb02
docker: Error response from daemon: No command specified.
See 'docker run --help'.
换成:docker run -i -t -p 3307:3306 -p 9084:8084 debian_cloudweb02 /bin/bash 只要在后面加上 /bin/bash即可
3.执行git attach containerID 时候报错
换成 docker exec -it containerID /bin/bash