[TOC]
Docker
docker下载不做阐述
http://www.docker.org.cn/book/install/supported-platform-17.html
docker手册
http://www.docker.org.cn/index.html
https://blog.csphere.cn/archives/22
http://www.docker.org.cn/dockerppt/106.html
问答帖子:https://blog.lab99.org/post/docker-2016-07-14-faq.html?tdsourcetag=s_pctim_aiomsg
运行一下docker
docker [选项] 命令
Dcoker基本指令
名词提醒
镜像 images 容器 container 仓库 repository
输出版本信息
docker --version #或者docker -V
搜索可用的docker镜像(docker search + 镜像名字)
docker search tutorial
当然你也可以去具体的网址上查看可用镜像 index.docker.io
下载镜像(docker pull +镜像名或者 用户名/镜像名)
docker pull learn\tutorial
运行容器(docker run [选项] image [命令] ([版本]))
docker run learn/tutorial echo "hello world"
docker run ubuntun:laster apt-get install -y python #在ubuntu容器中下载python
--rm 退出容器时自动删除这个容器
-it 交互并保定tty
-d 后台运行模式
--name 指定容器的名称
-p 指定端口 [主机端口:容器端口]
-P 暴露所有dockerfile中EXPOSE的端口 #建议使用这个
-e 指定环境变量
--link 连接了第一个容器 在第二个容器的/etc/hosts 文件下会有第一个容器的ip和名称
-v 指定卷
保存对容器的修改(docker commit [选项] 指定容器 [容器名字[:版本]]
docker commit 394 dd:4
指定容器可以是容器名字也可以是容器id前几位(只要能分辨是唯一就可以了)
成功输出内容为一串sha256
查看所有正在运行中的容器列表(docker ps [选项])
docker ps
-a #显示所有的容器,包括未运行的
-l #显示最近创建的容器
-n #显示最近创建的n个容器
-q #静默输出,只显示容器编号
-s #显示总的大小
查看更详细的关于某一个容器的信息(docker inspect [选项] 指定容器)
dockers inspect 377
发布网站(docker push [选项] 容器名字:版本) 这里不可以使用id指定
docker push learn\tutorial:33
停止运行的容器(docker stop [选项] 容器)
-t 或者 --time 倒计时暂停
删除已停止的容器(docker rm [选项] 容器)
查看容器的日志 (docker logs [选项] 容器)
进入容器内部(docker exec [选项] 容器 命令 [版本标记])
docker exec -it 037 /bin/bash
进入容器内部2(docker attach 容器id) #不建议使用
但在,使用该命令有一个问题。当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作
因为这个原因,所以docker attach命令不太适合于生产环境,平时自己开发应用时可以使用该命令。
进入容器内部3(ssh)
https://www.oschina.net/translate/why-you-dont-need-to-run-sshd-in-docker?cmp
docker build [选项] PATH | URL | -
docker build -t testdocker:v1 -f /home/For_docker/Dockerfile .
-t 标记版本标签
-f 指定要使用的dockerfile路径
常用指令
docker ps #查看运行容器
docker ps -a #查看所有容器
docker stop $(docker ps -q) #停止所有容器
docker rm $(docker ps -aq) #删除所有容器
docker stop (docke ps -q ) & docker rm $(docker ps -aq) #停止所有容器并删除
使用docker使用wordpress
1.安装MySQL
docker pull mysql(不写版本号,默认安装latest)
2.安装wordpress
docker pull wordpress
3.运行mysql
docker run --name some_mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
MYSQL_ROOT_PASSWORD指定了root的密码
另外如果运行了上面的内容,但是使用docker ps 发现没有运行,但是在docker ps -a发现了容器的存在时,可能时代码打错了。
4.运行wordpress
docker run --name some_wordpress --link some_mysql:mysql -p 8080:80 -d wordpress
--link 用于连接两个容器(A和B) 如果容器B连接了容器A,那么link会传递容器A的名字和id给容器B
some_mysql 为mysql的容器名 mysql为some_mysql容器在some_wordpress容器中的名字
-p 用户端口映射 这里将some_wordpress容器内部的80端口映射到docker的8080端口
这时候访问 服务器ip+docker的8080端口就可以访问wordpress了