docker帮助命令

docker version 显示版本信息
docker help 帮助
docker info 基本信息

docker镜像命令

docker images
# 可选项
-a, --all   # 列出所有镜像
-q, --quite # 只显示镜像的id

docker search 搜索镜像

# 可选项
--filter=STARS=3000 # 搜索星在3000以上的

docker pull 下载镜像

# 下载镜像 docker pull 镜像名 tag
# 如果不写tag默认就是最新版

删除容器

docker rm -f id # 删除指定容器
docker rm -f $(docker images -qa) # 删除所有容器

docker容器命令

新建容器并启动

--name = "名字" # 给容器起一个名字
-d            # 后台方式运行
-it           # 使用交互式方式运行
-P            # 指定容器的端口
    1.ip:主机端口:容器端口
    2.主机端口:容器端口(常用)
    3.容器端口
-p            # 随机端口

使用

chenci@MacBook-Pro ~ %docker run -it centos /bin/bash

退出
exit

查看运行的容器

docker ps 
# -a 历史运行过的容器
# -n=? 显示最近创建的容器
# -q 只显示容器的编号

启动和停止容器

docker start id #启动容器
docker restart id #重启容器
docker stop id #停止当前正在运行的容器
docker kill id #强制停止当前容器

查看日志

docker logs -tf --tail 日志条数 id

查看镜像元数据

docker inspect id

进入正在运行的容器

# 方法一
docker attach id # 进入容器正在执行的终端

#方法二
docker exec -it id bashshell #进入容器后开启新的终端

从容器拷贝文件到主机

docker cp id:容器内路径 目标主机路径

实例-安装nginx

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.拉取镜像
官方版
docker run -it --rm tomcat:9.0 #没有此镜像就会去自动下载,--rm退出后就删除镜像,一般用于测试

1.拉取镜像
docker -pull tamcat

2.启动并映射
docker run -d -p 3355:8080 --name tomcat01 tomcat

3.测试访问,发现404
curl localhost:3355

4.进入容器
docker exec -it tomcat01 /bin/bash

5.拷贝
cp -r webapps.dist/* webapps/

commit镜像

docker commit 提交容器成为一个新的副本

#与git相似
docker commit -m='提交的描述信息' -a='作者' 容器id 目标镜像名:[tag]

#1.利用原来的tomcat制作一个新镜像
docker commit -a='chenci' -m='add webapps' id tomcat02:1.0

容器数据卷

为了容器的持久化和同步操作

使用数据卷

挂载
docker run -it -v 主机目录:容器目录

测试同步mysql

#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.在远程连接中创建数据库测试
测试无误,本地和容器中都会多一个测试数据库

具名和匿名挂载

#只写了容器内的路径,就是匿名挂载
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

通过具名可以方便找到一个卷通所以一般使用具名挂载

-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #匿名挂载

扩展

#在路径后面跟:ro或则rw
ro表示这个路径只能通过宿主机来操作,容器内部无法操作