一、 docker组成
- 镜像
- 容器
- 仓库
二、容器基本操作
-
启动交互式容器
docker run -it image_name /bin/bash -i --interactive=ture | fasle 默认是false -t --tty=ture | fasle 默认是false
-
查看docker信息
docker info
-
查看容器
docker ps [-a][-l]
-
自定义容器名
docker run --name=自定义名 -it image_name /bin/bash
-
重新启动已停止的命令
docker start [-i] 容器名
-
删除停止的容器
docker rm 容器名
-
以守护形式运行容器
(1) docker run -it image_name /bin/bash (2) Ctrl+P+Q
附加到运行容器中
docker attach 容器名
启动守护式进程
docker ru -d image_name [COMMAND][ARG]
-
查看容器日志
docker logs [-f][-t][--tail] 容器名 -f --follows=ture|false 默认false -t --timestamps=ture|false 默认false --tail="all"
-
查看容器内进程
docker top 容器名
-
在运行中的容器中启动新的进程
docker exec [-d][-i][-t] 容器名 [COMMAND][ARG]
示例:
docker exec -it dc1 /bin/bash
-
停止守护容器
docker stop 容器名 docker kill 容器名 stop会等待一段时间停止容器 kill 会直接停止容器
-
使用docker帮助文档
man docker-run man docker-logs man docker-top man docker-exec
三、在容器中启动静态网站
-
设置容器端口映射
大写P为所有端口映射
小写p为指定容器端口映射 -
部署流程
a. cd /etc/nginx/sites-enabled/
b. vim default
c. 修改主页路径:
d. 启动nginx: nginx
e. 查看状态: ps -ef
f. 查看端口映射状态:docker port daker-name
四、镜像
-
列出镜像:
docker images
-
镜像完整id:
docker images --no-trunc
-
查看镜像详细信息:
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE ...]
-
删除镜像:
docker rmi [OPTIONS] IMAGE [IMAGE ...] -f --force=false Force removal of the image --no-prune-false Do not delete untagged parents
-
标签和仓库决定一个容器
-
查找惊像:
查找三星以上的仓库:docker search -s 3 ubuntu
-
拉取镜像
使用国内docker仓库拉取镜像:
在daocloud上获取DOCKER_OPTS -
推送镜像
docker login docker push 1576340464/blog_web
-
构建镜像:
docker commit: 通过容器构建 docker build: 通过Dockerfile文件构建
docker commit:
docker commit -a "1576340464" -m "this is a uwsgi+nginx+django create web" 6c823f86634a 1576340464/blog_web
docker file:
-
用镜像启动一个容器
docker run -v /home/web:/home/web -p 8000:8000 -itd --name blog_web python:3.5
五、docker的C/S模式
-
docker的C/S模式 -----> Remote API
(1)连接docker的socket服务端: nc -U /var/run/docker.sock(2)请求服务端相关数据: GET /info HTTP/1.1
(3) 返回数据格式:
-
docker的C/S模式 -----> 连接方式
六、Docker守护进程的配置和操作
-
查看守护进程
-
Docker启动选项
docker -d [OPTIONS]
-
查看docker启动配置详细信息
-
启动配置文件
可修改docker文件
七、Docker的远程访问
-
环境准备
提示: 用label区别两台服务器 -
修改服务器端配置
-
使用两种方式访问另一台docker服务xinxi
http访问: curl http://10.211.55.5:2375/info tcp客户端访问: docker -H tcp://10.211.55.5:2375 info
-
修改客户端配置