您的位置:首页 > 运维架构 > Docker

docker常用命令和操作以及Wekan开源项目部署

2017-04-20 18:52 811 查看
http://man.linuxde.net/cat

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 查看新创建的镜像的详细信息

下载一个ubuntu镜像

sudo docker pull ubuntu

使用ubuntu运行一个交互性的shell

sudo docker run -i -t ubuntu /bin/bash

docker ps命令

sudo docker ps #列出当前所有正在运行的container

sudo docker ps -l #列出最近一次启动的,且正在运行的container

sudo docker ps -a #列出所有的container

port命令

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息