Docker使用

Docker Hello World


命令:docker run

docker run ubuntu:15.10 /bin/echo "Hello world"
Hello world

各个参数解析:

  • docker: Docker 的二进制执行文件。

  • run:与前面的 docker 组合来运行一个容器。

  • ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。

  • /bin/echo “Hello world”: 在启动的容器里执行的命令

以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果。


运行交互式的容器

docker run -i -t ubuntu:15.10 /bin/bash
root@9140293ad33d:/# 

各个参数解析:

  • -t:在新容器内指定一个伪终端或终端。

  • -i:允许你对容器内的标准输入 (STDIN) 进行交互。

此时我们已进入一个 ubuntu15.10系统的容器

我们尝试在容器中运行命令 cat /proc/version和ls分别查看当前系统的版本信息和当前目录下的文件列表:

linylmbp:~ linyuanlin$ docker run -i -t ubuntu:15.10 /bin/bash 
root@9140293ad33d:/# cat /proc/version 
Linux version 4.9.93-linuxkit-aufs (root@856d34d1168e) (gcc version 6.4.0 (Alpine 6.4.0) ) #1 SMP Wed Jun 6 16:55:56 UTC 2018
root@9140293ad33d:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@9140293ad33d:/#

通过exitctrl+d退出


启动容器(后台模式)

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world;  sleep 1;  done"
linylmbp:~ linyuanlin$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
42059eca3278059e236aca01201a4d3403ad85aa2d18c98c23edfc0468527f16

在输出中,我们没有看到期望的"hello world",而是一串长字符

42059eca3278059e236aca01201a4d3403ad85aa2d18c98c23edfc0468527f16

这个长字符串叫做容器ID,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么。

首先,我们需要确认容器有在运行,可以通过 docker ps 来查看
在这里插入图片描述
CONTAINER ID:容器ID

NAMES:自动分配的容器名称

在容器内使用docker logs命令,查看容器内的标准输出
Docker使用_第1张图片


停止容器

docker stop
后面跟容器ID或者容器随机名称 。

rabbitmq启动

$ docker run \
-p 15672:15672 \
-p 5672:5672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
--name myrabbitmq \
--hostname=localhost \
-d rabbitmq:management
docker run \
-p 6379:6379 \
-v $PWD/data:/data \
-v $PWD/conf/redis.conf:/etc/redis/redis.conf \
--privileged=true \
--name myredis \
redis-server /etc/redis/redis.conf 
\--restart unless-stopped -d redis

你可能感兴趣的:(Linux)