Docker学习笔记-基础三

@bingoogolapple 2017-01-15 16:03:08发表于 bingoogolapple/bingoogolapple.github.io Docker

查看内核版本,需要在 3.10 及其以上

uname -a

检查 Device Magger

ls -l /sys/class/misc/device-mapper

安装 Docker 维护的版本

sudo apt-get update

https://get.docker.com/

curl -fsSL https://get.docker.com/ | sh

# 使用非 root 用户
sudo usermod -aG docker bingoogolapple
或
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart

配置 DaoCloud 加速器

https://www.daocloud.io/mirror#accelerator-doc

# 需重启 Docker
sudo systemctl restart docker.service

以交互式启动容器

docker run -it --name test-ubuntu ubuntu bash

以交互方式重新启动容器

docker start -i test-ubuntu

以交互方式启动容器后,使进程在后台运行

先 ctrl + p
然后 ctrl + q

进入后台运行的容器

docker attach test-ubuntu

启动守护式容器

docker run -d --name test-ubuntu ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

查看容器运行日志

docker logs [-f] [-t] 容器名

-f --follows=true|false 默认为false,是否一直跟踪日志的变化并返回结果
-t --timestamps=true|false 默认为false,是否在返回的结果中加上时间戳
--tail  选择返回结尾处多少数量的日志,如果不知道会返回所有的日志,如果值为0,则显示最新的日志

docker logs -tf --tail 10 test-ubuntu

查看容器内进程

docker top 容器名

查看容器端口映射情况

docker port 容器名

在运行中的容器内启动新进程

docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]

docker exec -it test-ubuntu bash
通过 ctrl+p 加 ctrl + q 使 bash 进程在后台运行
此时执行 docker top test-ubuntu 就能看到多了一个 bash 进程

停止守护式容器

# 发送信号给容器,等待容器停止,建议用这种方式
docker stop 容器名
#  会直接停止容器,不建议用这种方式
docker kill 容器名

使用 Docker 帮助文件

man docker-run
man docker-logs
man docker-top
man docker-exec

在容器中部署静态网站

docker run -p 8080:80 --name web -it ubuntu bash
apt-get update
apt-get install -y nginx
apt-get install -y vim
mkdir -p /var/www/html
cd /var/www/html
vim index.html


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HelloWorld</title>
</head>
<body>
<p>HelloWorld</p>
</body>
</html>


whereis nginx         查看 nginx 安装目录
cd /etc/nginx/sites-enabled
vim default
修改 root 的值为 /var/www/html
nginx
ps -ef
先 ctrl + p 然后 ctrl + q,使容器在后台运行
docker port web        查看容器端口映射
docker inspect -f {{.NetworkSettings.IPAddress}} web     查看容器 ip 地址
curl http://localhost:8080
curl http://172.17.0.2