查看内核版本,需要在 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