一 安装
我是在centOS7上安装的docker,安装比较简单,没碰到什么其他问题。
yum install docker 一会就安装好了。
安装完之后,启动docker服务,并将其设置为开机启动
service docker start ---- 启动docker服务
chkconfig docker on ----- 设置docker服务为开机启动
docker version 出现docker的信息
二 docker镜像,容器的 基操
首先先干掉国外仓库地址,太慢了,换成国内的仓库地址。
修改 /etc/docker/daemon.json文件
添加下面的内容
{
"registry-mirrors": ["http://f2d6cb40.m.daocloud.io"],
"live-restore": true
}
1 docker版helloworld
这里面用到了docker的几个的基础命令
(1)docker pull library/hello-world
---从远程拉取hello-world的镜像到本地 ,brary/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所 在的组,hello-world是 image 文件的名字 也可以用 docker pull centos:latest 改命令会从docker hub上拉取最新的镜像
(2)docker images 可以查看本机的镜像
(3)docker run hello-world ---运行image,这一步之后就可以看到如下信息,docker版hello-world就成功了
(4)docker rmi 镜像名/镜像id ----删除本地镜像
(5) docker ps ----查看正在运行的容器
(6)docker ps -a ----查看本地所有的容器
(7)docker start/stop/restart 容器id/容器名称 -----启动/停止/重启docker容器
(8)docker attach 容器id/容器名称 ----启动容器后 用这个命令进入容器
(9)docker rm 容器id/容器名称 ----删除容器
(10) docker info --查看当前系统的docker信息
(11) docker ps --filter 按容器id或名称过滤正在运行的容器
docker ps --filter name=nginx #列出正在运行容器名包含nginx的容器,也可以 docker ps --filter name=.*nginx.* 效果是 一样的
另外还支持正则表达式,把name=后面的名称换成正则表达式就行
2 进入容器内部看看
(1)先拉一个ubuntu的镜像来,并且运行起来,用下面这个命令
docker run -it ubuntn /bin/bash
首先docker会执行 run命令,本地有ubuntn镜像就会直接运行,没有就会到仓库拉取一个。
- i 和-t两个参数是创建一个我们能与之交互式的容器,而不是一个后台服务的容器。这个我也不懂,后面再研究研究
在这个命令的背后,docker用ubuntn镜像在文件系统内部创建一个新容器。该容器有自己的网络,ip地址,以及一个用来和宿主机进行通信的桥接网络接口。/bin/bsah是创建完容器之后要执行的命令,情动一个Bash shell
可以看到执行这条命令前后,主机名不一样,执行完命令之后,进入到容器里面了,主机名默认是容器id
你也可以先运行这个容器,然后再进入这个容器
(2)进入容器后,查看容器的host文件
cat /etc/hosts 可以看到最后一行有 172.17.0.2 99bf45c4b2c3 172.17.0.2就是容器的ip
----容器里安装软件包:和在ubuntu中安装是一样的。下面安装下vim编辑器
apt-get update && apt-get install vim
----给容器命名: 启动容器是加上 --name 容器名即可 例:docker run --name docker_test -it ubuntu /bin/bash
----创建守护式容器:守护式容器没有交互式会话,非常适合运行应用程序和服务。大多数时候我们都是以守护式来运行一个容器。
守护式容器只需要在启动命令加 -d参数,表示后台运行该容器。例:docker run --name docker_test -d ubuntu /bin/bash
docker run --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done" 这个命令创建了一个守护式的容器,在后台一直打印hello world
-----查看该容器日志 docker logs daemon_dave
在命令中加-f参数来跟踪日志,这与tail -f命令很类似 会一直输出容器的日志。
也可以加上 --tail 10 来跟踪某一段日志。例 docker logs --tail 10 daemon_dave 只显示最后10行日志
也可以
------日志驱动
控制docker守护进程和容器所用的日志驱动,通过参数 --lod-driver来实现
docker run --log-driver="syslog" --name daemon_dave -d ubuntu /bin/sh 。通过该命令启动容器,会禁用docker logs命令, 并且将容器的日志输出都重定向到syslog
----查看容器内进程
docker top 容器名
----深入查看容器的信息
docker inspect 容器名 查看容器的名称,网络等详细信息
用-f 或 --format参数来选定查看结果 例 docker inspect --format='{{.State.Running}}' daemon_dave
查看多个容器信息 docker inspect -f='{{.Name}} {{.State.Running}}' daemon_dave 99bf45c4b2c3
一般docker中 容器名称和id可以通用