http://man.linuxde.net/cat
sudo docker run -d --restart=always --name wekan616 --link "wekan-db51:db" -e "MONGO_URL=mongodb://db" -e "ROOT_URL=http://192.168.2.70:8095" -p 8095:80 wekanteam/wekan:v1.04
镜像文件匹配对应数据库配置
run -d 后台运行
–restart 标志会检查容器的退出代码,并据此来决定是否要重启容器,默认是不会重启。
always:无论容器的退出代码是什么,Docker都会自动重启该容器。
–name 为容器指定一个名称
–link 添加链接到另一个容器
-e “MONGO_URL=mongodb://db” mongodb:// 这是固定的格式,必须要指定。 db为别名
-e “ROOT_URL=http://localhost:8093”
-p 8080:80 端口映射
wekanteam/wekan:latest 镜像文件
查看容器web部署文件
sudo docker exec -it wekan_update_test20180614 /bin/bash
查看数据库mongo文件
sudo docker exec -it wekandb_update_test20180614 /bin/bash
Docker 常用命令
docker ps -a //显示所有容器
docker ps //显示运行中的容器
docker start <容器ID> //启动容器
docker stop <容器ID> //停止容器
docker rm <容器ID> //删除指定容器
docker rm $(docker ps -a -q) //删除所有容器
docker images //显示所有镜像
docker rm <镜像仓库名> //删除镜像(image)
docker rename <容器名> <新容器名> //容器重命名
docker pull ubuntu:下载镜像
docker run -i -t ubuntu /bin/bash:运行ubuntu镜像
docker run <相关参数> <镜像 ID> <初始命令>
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,
格式:-v <宿主机目录>:<容器目录>
容器镜像操作
//创建并启动容器,一个仓库可能对应多个版本的镜像,
//通过 仓库名:镜像名 来指定用哪个镜像
docker run -t –name <容器名> <仓库名>:<镜像名>
//用容器创建一个镜像
//仓库名类似分组,用于组织镜像,标签类似git的标签,用于标记版本
docker commit -m <”提交日志”> -a <”作者”> <容器ID> <仓库名>:<标签>
//进入容器的 shell 环境
docker exec -i -t <容器ID> /bin/bash
//检查容器配置
docker inspect <容器ID>
docker commit 3a09b2588478 ubuntu:mynewimage:提交你的变更,
并且把容器保存成Tag为mynewimage的新的ubuntu镜像.
(注意,这里提交只是提交到本地仓库,类似Git)
sudo docker run ubuntu /bin/echo hello world
docker: Docker 的二进制执行文件。
run:与前面的 docker 组合来运行一个容器。
ubuntu 指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
/bin/echo “Hello world”: 在启动的容器里执行的命令
-t:在新容器内指定一个伪终端或终端。
-i:允许你对容器内的标准输入 (STDIN) 进行交互。启动容器(后台模式) docker run -d ubuntu:15.10 /bin/sh -c “while true; do echo
hello world; sleep 1; done”docker ps 查看 CONTAINER ID:容器ID docker logs 2b1b7a428627 停止容器 docker
stop ID查看命令 docker 详细但单个命令 docker stats –help
sudo docker ps -a 查看容器列表
sudo docker commit 39b2cf60a4c1 hello-world 提交一个新的镜像
sudo docker inspect hello-world 查看新创建的镜像的详细信息
sudo docker pull ubuntu
sudo docker run -i -t ubuntu /bin/bash
sudo docker ps #列出当前所有正在运行的container
sudo docker ps -l #列出最近一次启动的,且正在运行的container
sudo docker ps -a #列出所有的container
docker run -p 80:8080 #映射容器的8080端口到宿主机的80端口
sudo docker rm sudo docker ps -a -q
#删除所有容器
sudo docker rm $CONTAINER_ID#删除容器id为CONTAINER_ID的容器
sudo docker images 查看本地镜像 sudo docker attach $CONTAINER_ID
docker logs $CONTAINER_ID
$CONTAINER_ID 查看container的实例属性,比如ip等等
http://blog.shiqichan.com/Dockerizing-a-Node-js-Web-Application/
——————mongo——————
查找Docker Hub上的mongo镜像
runoob@runoob:~/mongo$ docker search mongo
runoob@runoob:~/mongo$ docker pull mongo:3.2
——–使用mongo镜像———
运行容器
runoob@runoob:~/mongo$ docker run -p
27017:27017 -v $PWD/db:/data/db -d mongo:3.2
-p 27017:27017 :将容器的27017 端口映射到主机的27017 端口
-v $PWD/db:/data/db :将主机中当前目录下的db挂载到容器的/data/db,作为mongo数据存储目录 查看容器启动情况
runoob@runoob:~/mongo$ docker ps
使用mongo镜像执行mongo 命令连接到刚启动的容器,主机IP为192.168.142.129
docker run -it mongo:3.2 mongo –host 192.168.142.129
镜像–>容器–>虚拟主机
$PWD/db:/data/db
——-使用mongo容器 === 执行shell命令———-
docker exec -it <容器名或ID> <命令行命令> <参数>
sudo docker exec -it 8d7f41427cc9 /bin/bash
密码:
mongo
use admin
show collections
db.users.find()
———————nodejs————————–
查找Docker Hub上的mongo镜像
docker search node
docker pull node:7.8
安装npm
sudo npm install
用Docker里的nodejs跑这个Web Application了(在项目的根目录下)
sudo docker run –rm -it -p 3000:3000 –name ProtoWebApp -v “$(pwd)”:/webapp -w /webapp node:7.8 npm start
-v后:分割的路径,前者表示宿主的路径(在这里也就是expressjs项目的主目录),后者表示映射到Docker容器的路径。
-w,表示将-v映射的/webapp目录设置为work directory,也就是运行node命令的目录。这个设置将覆盖Dockfiie中的设置:/Data。
如果需要让Docker容器跑在后台,可以加上-d
sudo docker run –rm -itd -p 3000:3000 –name ProtoWebApp -v “$(pwd)”:/webapp -w /webapp node npm start
———————-WeKan——————————
//-p 指定端口映射规则,这样在外部可以通过docker主机IP访问mongo
//-i 是否使用交互式命令行(例如在容器启动时,执行shell脚本)
//-t 表示启用伪终端(TTY)
//-d 表示容器在后台运行
//-v 创建一个卷并绑定挂载点(类似目录映射,实现host和container文件共享)
docker run -p <主机端口>:<容器端口> -td <镜像ID或镜像名>
1.移除所有容器
sudo docker rm sudo docker ps -a -q
2.WEKAN 开源项目的部署
docker run -d -v /path-to-save-mongo-data:/data/db –name wekan-db mongo
docker run -d --link "wekan-db:db" -e "MONGO_URL=mongodb://db" -e "ROOT_URL=http://example.com" -p 8080:80 mquandalle/wekan
https://docs.docker.com/compose/overview/
———————–Dockerfile————————
1.用dockerfile定义应用程序的环境,类似集装箱,运行在任何地方
———————-docker-compose.yml——————
2.定义docker-compose组成应用程序的服务.yml,这样他们可以在一起在一个孤立的环境中运行。
———————–docker-compose up——————
3.最后,docker-compose起来组成将开始运行,运行您的整个应用程序
Start, stop and rebuild services
View the status of running services
Stream the log output of running services
Run a one-off command on a service
安装docker-compose:
$sudo apt-get -yqq install aptitude
$sudo aptitude -y install python-pip
$sudo pip install docker-compose
$sudo docker-compose version
cd /path-to-save-mongo-data
docker-compose up 前台
docker-compose start 后台
————————–SSH免密码scp———————-
sudo apt-get install ssh
sudo apt-get install openssh-server