docker官方网站(国外):Docker Hub
常识:
latest
如果没有指定镜像版本,会默认下载最新版本的 latest
安装docker
查看docker是否安装:yum list installed | grep docker
安装所需软件包:yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum国内镜像源(阿里云):sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker-ce:yum -y install docker-ce (-y表示不询问安装,注:不能使用(yum -y install docker),因为最终安装的可能不是docker)
卸载docker:yum remove docker-ce
查看docker版本号:docker -version 或 docker -v
启动docker
启动docker:systemctl start docker
加入启动项(开机自动启动):systemctl enable docker
重启docker服务:systemctl restart docker / service docker restart
docker服务状态:systemctl status docker
仓库
镜像仓库指令
查询云库镜像:docker search mysql
查询云库点赞数超过30以上:docker search -s 30 mysql
查看本地镜像列表:docker images
下载云库镜像到本地:docker pull mysql:latest
卸载本地已安装的镜像:docker rmi [IMAGE ID](IMAGE ID为远程仓库的ID)
卸载本地全部镜像: docker rmi -f $(docker images -qa)
容器
创建容器:
运行原理:先在本地仓库中查看有没有,没有的话就会去远程仓库中下载,本地仓库中有就运行本地仓库的
下载并运行tomcat8:docker run tomcat:8
加 -p 8081:8080 带端口的方式运行(第一个8081是宿主机的端口,8080为tomcat端口):
docker run -p 8081:8080 tomcat:8
加 --name my-tomcat
docker run --name my-tomcat tomcat:8
加 -d
前台启动会打印启动日志信息
后台启动不会打印启动日志信息
docker run -d tomcat:8
查看容器日志 docker logs 容器ID
docker logs -f [镜像ID] --tail 1000 -t --since '2023-08-01T06:55:00.999999999' --until='2023-08-01T07:05:00.999999999' -f 跟踪实时日志 --tail 从日志末尾显示多少行 -t 显示时间戳 --since 显示自某个timestamp之后的日志 --until 显示自某个timestamp之前的日志
查看容器列表:
打开一个新的终端查看运行的容器:docker ps -a

可以看到刚刚启动的容器列表
访问
容器内部访问:
进入到容器,可以使用bash命令浏览容器里的文件(有的镜像没有bash命令,可以用对应的shell,比如sh):
docker exec -it [CONTAINER ID] bash / docker exec -it [CONTAINER ID] sh
进入容器后:
直接ls查看目录
也可以使用 ip addr 查看容器的ip,可能会报 ip: command not found 错误。
curl 127.0.0.1:8080
bash: curl: command not found
apt-get update
apt-get install yum
访问正常,那怎么在容器外部访问呢?
容器外部访问:(docker以外,也就是虚拟机内)
首先 exit 指令退出容器,然后用 docker ps
接着使用 docker inspect [CONTAINER ID] 命令查看该容器的网段
最后用 curl 172.17.0.2:8080 --output mysql5.7
注:如果宿主机需要访问,应该使用Linux系统的 ip 访问

关闭容器:
关闭单个:docker stop [CONTAINER ID]
关闭所有容器:docker stop $(docker ps -q)
虽然这个容器已经关闭,但只是关闭了没有删除;可以使用 docker ps -a
所以如果这个时候再次运行 docker run --name my-tomcat tomcat:8
删除容器:
这个时候就要
删除单个容器:docker rm [CONTAINER ID]
删除所有容器:docker rm $(docker ps -aq)
重启容器:
既然容器关闭了,又不想新建一个容器(如果容器已经存在,再次运行 docker run [CONTAINER ID] 或容器名
可以使用:docker restart [CONTAINER ID] 或容器名
参数:-t:关闭容器的倒计时(单位:秒)
设容器为自动启动: docker update mysql5.7 --restart=always
在容器中新建文件:
1. 安装一个tomcat8 docker run -p 8081:8080 tomcat:8
2. docker exec -it 3a06b4c779a8 bash
3. cd webapps
4. mkdir mayikt
5. touch index.html
6. echo "mayikt" >>index.html复制容器为镜像文件:
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
1.根据当前容器作为模板制作为镜像文件
docker commit -m="mayikt tomcat" -a="mayikt" 3a06b4c779a8 mayikt-tomcat:1.0
2.在以当前自己制作的镜像文件运行
docker run -p 8088:8080 mayikt-tomcat:1.0
















