0%
docker帮助命令
1 2 3
| docker version 显示版本信息 docker help 帮助 docker info 基本信息
|
docker镜像命令
1 2 3 4
| docker images
-a, --all -q, --quite
|
docker search 搜索镜像
docker pull 下载镜像
1 2
| # 下载镜像 docker pull 镜像名 tag # 如果不写tag默认就是最新版
|
删除容器
1 2
| docker rm -f id docker rm -f $(docker images -qa)
|
docker容器命令
新建容器并启动
1 2 3 4 5 6 7 8
| --name = "名字" -d -it -P 1.ip:主机端口:容器端口 2.主机端口:容器端口(常用) 3.容器端口 -p
|
使用
1 2 3 4
| chenci@MacBook-Pro ~ %docker run -it centos /bin/bash
退出 exit
|
查看运行的容器
启动和停止容器
1 2 3 4
| docker start id docker restart id docker stop id docker kill id
|
查看日志
1
| docker logs -tf --tail 日志条数 id
|
查看镜像元数据
进入正在运行的容器
1 2 3 4 5
| docker attach id
docker exec -it id bashshell
|
从容器拷贝文件到主机
1
| docker cp id:容器内路径 目标主机路径
|
实例-安装nginx
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 1.搜索镜像 docker search nginx
2.拉取镜像 docker pull nginx
3.启动并映射到本地3344端口 docker run -d --name nginx01 -p 3344:80 nginx
4.测试 curl localhost:3344
5.进入容器 docker exec -it nginx01 /bin/bash
|
实例-安装tomcat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 1.拉取镜像 官方版 docker run -it
1.拉取镜像 docker -pull tamcat
2.启动并映射 docker run -d -p 3355:8080
3.测试访问,发现404 curl localhost:3355
4.进入容器 docker exec -it tomcat01 /bin/bash
5.拷贝 cp -r webapps.dist/* webapps/
|
commit镜像
1 2 3 4 5 6 7 8
| docker commit 提交容器成为一个新的副本
#与git相似 docker commit -m='提交的描述信息' -a='作者' 容器id 目标镜像名:[tag]
#1.利用原来的tomcat制作一个新镜像 docker commit -a='chenci' -m='add webapps' id tomcat02:1.0
|
容器数据卷
使用数据卷
1 2
| 挂载 docker run -it -v 主机目录:容器目录
|
测试同步mysql
1 2 3 4 5 6 7 8
| #1.启动并映射端口,设置密码 docker run -d -p 3310:3306 -v /Users/chenci/guazai/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name some-mysql mysql:5.7
#2.远程连接 mysql -uroot -p123456 -h 10.30.3.100 -P 3310
#3.在远程连接中创建数据库测试 测试无误,本地和容器中都会多一个测试数据库
|
具名和匿名挂载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #只写了容器内的路径,就是匿名挂载 docker run -it -P --name nginx -V /path id #查看 local 6c71f963cc89b24d16b4b47cb35df42445ff9d9395753b192ba72cbbbc22d583
#写了名字就是具名挂载 docker run -it -P --name nginx -V juming /path id #查看 local juming
#查看所有的volume docker volume ls
#查看卷 docker volume inspect juming
|
通过具名可以方便找到一个卷通所以一般使用具名挂载
1 2
| -v 容器内路径 #匿名挂载 -v 卷名:容器内路径 #匿名挂载
|
扩展
1 2
| #在路径后面跟:ro或则rw ro表示这个路径只能通过宿主机来操作,容器内部无法操作
|