分类 其他 下的文章

Docker 命令笔记

搜索镜像
docker search image

下载镜像
docker pull image

交互式终端 -t标示在心容器内指定一个伪终端或终端,-i标示允许我们对容器内的STDIN进行交互。
docker run -t -i ubuntu:14.04 /bin/bash

守护进程 -d标识告诉docker运行容器在后台模式运行
docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

docker logs命令看起来想运行在容器内并且返回标准输出
docker logs insane_babbage

查看所有容器
docker ps -a

从该镜像上创建一个容器
docker run --rm -ti ubuntu /bin/bash

容器内执行程序
docker exec -ti name /bin/bash

命名容器
docker run -d -P --name web training/webapp python app.py

基于基础镜像创建新镜像
docker commit -m="Added json gem" -a="Kate Smith" 0b2616b0e5a8 minecraft/java:170
-m标示是允许我们指定提交的信息,就像你提交一个版本控制。-a标示允许对我们的更新指定一个用户。

使用-p标识来指定容器端口绑定到主机端口
docker run -d -p 5000:5000 training/webapp python app.py

添加一个数据卷 -v 标识来给容器内添加一个数据卷
docker run -d -P --name web -v /webapp training/webapp python app.py

-v 还可以挂载本地主机目录到容器中 挂载本地目录/src/webapp到容器的/ot/webapp目录
docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py
注意:如果挂载好后在容器内无法访问挂载的目录,可能是SELinux没有关闭导致的原因。

查看容器中运行着哪些进程
docker top nginx_dist

查看容器IP和主机等信息
docker inspect nginx_dist |grep 172.17

连接到容器上,--sig-proxy可以保证 Ctrl+D、Ctrl+C 不会退出
docker attach --sig-proxy=false name
当然也可以使用 Ctrl + Q + P 多按几次也能达到同样的效果

修改容器配置
docker stop test01
docker commit test01 test02
docker run -p 8080:8080 -td test02

####自动构建####
创建构建文件
vi Dockerfile

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
FROM centos:latest
MAINTAINER Srarservice@chinasrar.com

WORKDIR /opt/

RUN yum install -y wget java-1.7.0-openjdk
RUN wget http://cdn.x-speed.cc/docker.minecraft/craftbukkit-172.jar

EXPOSE 25565

ENTRYPOINT /usr/bin/java -Xms256M -Xmx1G -jar /opt/craftbukkit-172.jar
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

开始构建
sudo docker build --tag minecraft:1.7.2 .

保存镜像到一个tar包; -o, --output="" Write to an file
docker save image_name -o file_path
加载一个tar包格式的镜像; -i, --input="" Read from a tar archive file
docker load -i file_path

机器a
docker save image_name > /home/save.tar
使用scp将save.tar拷到机器b上,然后:
docker load < /home/save.tar

开启 Docker Remote API
编辑 /etc/sysconfig/docker other_args="" 修改为 other_args="-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock"

安装Ping
apt-get install -yqq inetutils-ping

提示错误 无法启动容器 Error response from daemon: Cannot start container
修改Docker配置文件 /etc/sysconfig/docker other-args 改为 other_args="--exec-driver=lxc --selinux-enabled"

容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause]
容器操作运维 — docker [ps|inspect|top|attach|events|logs|wait|export|port]
容器rootfs命令 — docker [commit|cp|diff]
镜像仓库 — docker [login|pull|push|search]
本地镜像管理 — docker [images|rmi|tag|build|history|save|import]
其他命令 — docker [info|version]