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

docker使用技巧

2016-07-28 23:56 513 查看

环境配置

检查curl包有没有安装

which curl


如果curl没有安装的话,则先更新apt源,并安装curl包

apt-get update

apt-get install curl

apt-get update

wget -qO- https://get.docker.com/ | sh


设置当前用户为docker用户组 (解决执行Docker时,每次都要输入sudo,同时输入密码)

# 添加一个新的docker用户组
groupadd docker
# 添加当前用户到docker用户组里,注意这里的xxoo为ubuntu server登录用户名
gpasswd -a xxoo docker
# 重启Docker后台监护进程
service docker restart
# 重启之后,尝试一下,是否生效
docker version
#若还未生效,则系统重启,则生效
reboot


启动docker服务

service docker start


常见命

运行测试

docker run hello-world


显示本地镜像

docker images


获取镜像

docker pull ubuntu:12.04


创建一个容器,让其运行bash

docker run -t -i ubuntu:12.04 /bin/sh


说明:-i:表示以“交互模式”运行容器 -t:表示容器启动后会进入其命令行

利用DocFile来创建镜像

mkdir sinatra

cd sinatra/

touch Dockerfile

vim Dockerfile

docker build -t="ouruser/sinatra:v2" .


运行容器

docker start [stop| restart] xxx


导出容器

docker ps -a

docker save -o ubuntu.tar.gz ubuntu:14.04  *(保存的是所有这个镜像的版本记录,包括一些历史数据.)*

docker export pid > ./ubuntu.tar.gz  *(导出的是容器当前所用的镜像内容)*


导入容器

docker load < /tmp/mynewimage.tar *(docker save 的逆操作)*

cat ubuntu.tar | docker import - test/ubuntu:v1.0 *( export 的逆操作)*


删除容器

docker stop xxx

docker rm xxx


docker 的文件是放在 /var/lib/docker/containers/ 中的。

保存镜像

docker commit xxx abc


这里保存成一个名叫 abc 的镜像,镜像名称中只允许出现小写字母和数字。

删除镜像

docker rmi abc


获取镜像历史

docker history abc

docker images --tree  *(查看所有镜像的历史过程)*


只能对本地存在的 docker 镜像执行这个命令

docker kill

docker kill container


杀死一个或多个指定容器进程。-s “KILL” 自定义发送至容器的信号。

docker top

docker top container


查看一个正在运行容器进程,支持 ps 命令参数

docker pause

docker pause container


暂停某一容器的所有进程。

docker unpause

docker unpause container


恢复某一容器的所有进程

docker tag

docker tag image name


标记本地镜像,将其归入某一仓库。-f 覆盖已有标记。

docker logs

docker logs container


获取容器运行时的输出日志。

docker attach

docker run -itd ubuntu:14.04 /bin/bash

docker attach 44fc0f0582d9


docker attach可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。

docker exec

docker exec -i name /bin/sh


只用-i时,由于没有分配伪终端,看起来像pipe执行一样。但是执行结果、命令

返回值都可以正确获取。

docker exec -it name /bin/sh


使用-it时,则和我们平常操作console界面类似。而且也不会像attach方式因为退出,导致整个容器退出。

docker exec -t name /bin/sh


如果只使用-t参数,则可以看到一个console窗口,但是执行命令会发现由于没有获得stdin的输出,无法看到命令执行情况。

docker exec -d name /bin/sh a.sh


在后台执行一个进程。可以看出,如果一个命令需要长时间进程,使用-d参数会很快返回。程序在后台运行。

docker inspect

docker inspect 465c60612e5c


可以分层级显示一个镜像或容器的信息

安装常见容器

dockerui

docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui


gitlib

https://hub.docker.com/r/sameersbn/gitlab/ http://www.tuicool.com/articles/bYbi2mJ[/code] 
mysql

docker search mysql
docker pull mysql
docker run --name xmysql-db -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 -v /data/mysql_data/:/var/lib/mysql mysql


mongodb

docker pull mongo
docker run --name xmongo-db -p 27018:27017 -v /data/my_mongo_data:/data/db -d mongo


jenkins

docker pull jenkins
chown 1000 /data/jenkins_data/
docker run --name xjenkins -d -p 9000:8080 -p 50000:50000 -v /data/jenkins_data:/var/jenkins_home -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai -d jenkins


elasticsearch

docker pull elasticsearch
docker run --name xelastic-search -d -p 9200:9200 -p 9300:9300 -v /data/esdata:/usr/share/elasticsearch/data elasticsearch


tomcat

docker pull tomcat
docker run --name xtomcat -d -v /data/tomcat/webapps/:/usr/local/tomcat/webapps/ -p 8080:8080 -p 9001:9000 tomcat:8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: