启动docker
systemctl start docker
查看docker版本信息
docker version
运行docker镜像
docker run hello-world
官方会提供hello-world镜像,本地docker没有hello-world镜像回取官网拉取
查看镜像
docker images
-q , --quiet # 只显示镜像的id ;
-a , --all #列出所有镜像
docker ps -aq
#查看docker的系统信息,包括镜像和容器的数量
docker info
万能命令
docker 命令 --help
搜索镜像
docker search mysql
--filter=STARS=3000 #搜索出来的镜像就是STARS大于3000的
下载镜像
docker pull mysql
docker pull 镜像名[:tag] #如果不写tag就会默认使用最新的镜像latest
删除镜像
docker rmi -f 【镜像名/id】 ##rm 删除 i 镜像 f 全部删除
docker rmi -f mysql
docker rmi -f $(docker images -aq)
#$(docker images -aq)查询所有镜像的id
#递归删除所有镜像
新建容器并启动
docker run [可选参数] image
# --name="Name" 容器的名字 tomcat01 tomcat02,用来区分容器
# -d 后台运行
# -it 使用交互方式运行,进入容器查看内容
# -p 指定容器的端口 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
容器端口
# -P 随机指定端口 大P
启动并进入容器
docker run -it centos /bin/bash
退出容器
exit
查看运行中的容器
docker ps #查看当前运行的容器
docker ps -a #查看当前运行的容器+历史运行过的容器
docker ps -a -n=? #显示最近创建的?个容器容器
docker ps -a -n=1
docker ps -q #只显示容器的编号
exit #直接容器停止并退出
Ctrl + P + Q #容器不停止退出
删除容器(不能删除正在运行的容器)
#删除容器
docker rm 容器id
#删除所有容器
docker rm -f $(docker ps -aq)
启动和停止容器的操作
docker start 容器id #启动容器
docker restart 容器id #重新启动容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
查看日志
docker log -f -t --tail 容器
#查看日志信息(前10行)
docker logs -tf --tail 10 e2453aec0f42
-tf #显示日志
--tail number #要显示的日志条数
查看容器中进程信息ps
docker top 容器id
查看镜像的元数据
docker inspect 容器id
进入容器后开启一个新的终端,可以在里面操作(常用)
docker exec
docker exec -it 466e1cc74d91 /bin/bash
#进入容器正在执行的终端,不会启动新的进程
docker attach
从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的的主机路径
docker cp ba585a4137e5:/home/test.java /home
#将docker容器中的文件拷贝到centos的home文件目录下
将linux中的文件拷贝到docker容器中
docker cp a.txt 25a7045e3f6f:/home/
#进入容器查看
docker exec -it 25a7045e3f6f /bin/bash
下载并部署nginx镜像
下载镜像:
docker pull nginx
查看镜像:
docker images
启动镜像
docker run -d --name nginx01 -p 3344:80 nginx
-d 后台运行
--name 给容器命名
-p 宿主机端口:容器内部端口
#查看镜像运行
curl localhost:3344
下载并部署tomcat
#官方的使用
docker run -it --rm tomcat:9.0 (一般用来测试,用完即删除)
下载再启动
docker pull tomcat:9.0
docker run -d -p 3355:8080 --name tomcat01 tomcat
#测试没有问题
curl localhost:3355
#进入容器
docker exec -it tomcat01 /bin/bash
#发现问题:
1.linux命令少了
2.没有webapps
阿里云镜像的原因,默认是最小的镜像,所有不必要的都删除1掉
保证最小可运行的环境
解决:
将文件目录下的webapps.dist目录下的文件全部拷贝到webapps目录下
然后再访问 localhost:8080