docker 常用命令

sudo docker info查看docker 程序是否正常工作
sudo docker run -i -t ubuntu /bin/bash创建第一个容器
sudo docker run -i -t ubuntu /bin/bash
hostname检查容器的主机名
sudo docker run ——name bob_the_container -i -t ubuntu /bin/bash给容器命名
sudo docker logs daemon_dave获取守护式容器的日志
sudo docker logs -f daemon_dave跟踪守护式容器的日志
sudo docker logs -ft daemon_dave跟踪守护式容器的最新日志
sudo docker top daemon_dave查看守护式容器的进程


sudo docker exec -d daemon_dave touch /etc/new_config_file在容器中运行后台任务
sudo docker exec -t -i daemon_dave /bin/bash在容器内运行交互命令
sudo docker stop c2c4e57c12c4停止正在运行的Docker容器
sudo docker run ——restart=always ——name daemon_dave -d ubuntu /
bin/sh -c "while true; do echo hello world; sleep 1; done"
自动重启容器
sudo docker inspect ——format='{{ .State.Running }}' daemon_dave返回容器的运行状态
sudo docker inspect ——format '{{ .NetworkSettings.IPAddress }}' \
daemon_dave
查看容器的IP地址


 sudo docker inspect ——format '{{.Name}} {{.State.Running}}' \
daemon_dave bob_the_container
查看多个容器
sudo docker rm 80430f8d0921删除容器
docker rm `docker ps -a -q`删除所有容器
sudo docker images列出Docker镜像
sudo docker pull ubuntu拉取Ubuntu镜像
sudo docker images列出所有ubuntu Docker 镜像
sudo docker run -t -i ——name new_container ubuntu:12.04 /bin/bash运行一个带标签的Docker镜像
sudo docker pull fedora拉取fedora 镜像
sudo docker images fedora查看fedora 镜像
sudo docker pull fedora:20拉取带标签的fedora镜像


sudo docker login
Username:jamtur01
Password:
Email:james@lovedthanlost.net
Login Succeeded
登录到Docker Hub


sudo docker run -i -t ubuntu /bin/bash创建一个要进行修改的定制容器
apt-get -yqq update
apt-get -y install apache2
sudo docker commit 4aab3ce3cb76 jamtur01/apache2提交定制容器
sudo docker images jamtur01/apache2检查新创建的镜像
sudo docker commit -m="A new custom image" ——author="James Turnbull" \
4aab3ce3cb76 jamtur01/apache2:webserver
提交另一个新的定制容器
sudo docker inspect jamtur01/apache2:webserver查看提交的镜像的详细信息
sudo docker run -t -i jamtur01/apache2:webserver /bin/bash从提交的镜像运行一个新容器


sudo docker history 22d47c8cb6e5如果想深入探求镜像是如何构建出来的
sudo docker ps -l查看Docker端口映射情况
sudo docker port 6751b94bb5c0 80通过docker port来查看容器的端口映射情况,在上面的命令中我们指定了想要查看映射情况的容器的ID和容器的端口号,这里是80。该命令返回了宿主机中映射的端口,即49154。
sudo docker run -d -p 80:80 ——name static_web jamtur01/static_web \
nginx -g "daemon off;"
将容器内的80端口绑定到本地宿主机的80端口上
sudo docker run -d- p 8080:80 ——name static_web jamtur01/static_web \
nginx -g "daemon off;"
绑定不同的端口
curl localhost:49154使用curl连接到容器
sudo docker rmi jamtur01/static_web删除Docker镜像
sudo docker rmi jamtur01/apache2 jamtur01/puppetmaster同时删除多个Docker镜像
sudo docker rmi `docker images -a -q`删除所有镜像


sudo docker run -d -p 80 ——name website \
-v $PWD/website:/var/www/html/website \
jamtur01/nginx nginx
构建第一个Nginx测试容器,v 这个选项允许我们将宿主机的目录作为卷,挂载到容器里。


ip a show docker0docker0网络接口。第一种方法涉及 Docker 自己的网络栈。到目前为止,我们看到的 Docker 容器都是公开端口并绑定到本地网络接口的,这样可以把容器里的服务在本地 Docker 宿主机所在的外部网络上(比如,把容器里的80端口绑到本地宿主机的更高端口上)公开。除了这种用法,Docker这个特性还有种用法我们没有见过,那就是内部网络。
在安装Docker时,会创建一个新的网络接口,名字是docker0。每个Docker容器都会在这个接口上分配一个IP地址。来看看目前Docker宿主机上这个网络接口的信息
sudo docker run -t -i ubuntu /bin/bash容器内的eth0接口
sudo iptables -t nat -L -nDocker的iptables和NAT配置
sudo docker inspect redisRedis容器的网络配置
$ sudo docker run -p 4567 \
——name webapp ——link redis:db -t -i \
-v $PWD/webapp:/opt/webapp jamtur01/sinatra \
/bin/bash
root@811bd6d588cb:/#
那么应该怎么做呢?谢天谢地,Docker有个叫做连接(link)的功能非常有用,这个功能可以把一个或者多个Docker容器连接起来,让其互相通信。


root@811bd6d588cb:/# env显示用于连接的环境变量


(完)