初级使用记录
==了解== 熟悉 掌握 精通
init
下载docker,macOS版
brew install --cask --appdir=/Applications docker
本机启动docker 服务
# service 命令的用法
$ sudo service docker start
# systemctl 命令的用法
$ sudo systemctl start docker
💡注意service
和systemctl
都不能在macOS中使用,macOS的命令是launchctl
,但是在macOS中brew install,就会自动下载docker Desktop,使用客户端界面打开好了。
一些概念简介
docker有镜像和容器的概念。下载docker之后,需要哪个应用,比如mysql,就下载相应的镜像,里面装的是该应用程序及其依赖。通过镜像,可以再生成容器的实例,一个镜像可以反复生成多个容器。
镜像在Docker Hub下载。
命令
镜像命令 image
列出所有镜像:
docker images
# 会列出
REPOSITORY TAG IMAGE ID CREATED SIZE
# 参数
-a # 列出所有
-q # 只显示镜像id
搜索镜像:
docker search <名字>
下载镜像:
docker pull <名字>
删除镜像
docker rmi <名字/id>
循环删除:
docker rmi -f $(docker image -aq)
容器命令
💡 有了镜像才可以创建容器。所以要先
docker pull <容器>
新建容器并启动
docker run <参数> image
# 参数说明
--name="name" 容器名字
-d 后台方式运行
-it 交互方式运行,进入容器查看内容
-p 端口,可映射 -p (主机端口:)容器端口
启动一个centos并进入:
docker run -it centos /bin/bash
退出:
exit
列出运行的容器
docker ps <参数>
# 如果不带参数,就是查看当前运行的容器
-a # 列出当前运行的容器 + 历史运行的容器
-n=? # 显示最近创建的容器
-q # 只显示容器的编号
退出容器
exit # 直接容器停止并退出
ctrl + p + q # 容器不停止退出
删除容器
docker rm <容器id> # 删除指定容器, 不能删除运行中的id
docker rm -f ${docker ps -aq} #删除所有容器
docker ps -a -q | xargs docker rm # 删除所有容器
启动和停止容器
docker start <容器id> # 启动容器
docker restart <容器id> # 重启
docker stop <容器id> # 停止正运行的容器
docker kill <容器id> # 强制停止当前容器
后台启动容器
docker run -d centos
# docker容器使用后台运行,必须要有一个前台进程,如果没有就会自动停止
查看日志
# 写一段脚本
docker run -d centos /bin/bash -c "while true; do echo 测试测试;sleep 1; done"
# 查看id,假设是 bcdefg
docker ps
# 查看最后10条日志
-t # 显示日志
-f # 显示时间戳
-tail num
docker logs -tf -tail 10 bcdefg
查看容器中进程信息
docker top <容器id>
查看镜像元数据
docker inspect <镜像id>
进入当前正运行的容器
-it # 交互模式
docker exec -it <容器id> bashShell(比如bin/bash) # 进入后 开启新的终端
docker attach <容器id> bashShell(比如bin/bash) # 进入在容器正在执行的终端
从容器内copy到主机上
docker cp <容器id>:<容器路径> <主机命令>
一些练习
查看docker状态
# 看docker有无安装
docker --version # 如果不带`--`,信息会多一些
# 查看docker状态
systemctl status docker # linux系统
docker ps # 其实可以直接用这个命令看docker有没有run
删除容器
# 删除容器,❗️但是必须是不在运行的容器
docker rm [容器名字/id]
# 停止容器
docker stop [容器名字/id]
# 强制停止容器
docker kill [容器名字/id]
连redis
# 下载镜像
docker pull redis
# 启动redis容器
docker run -p 6379:6379 --name my-redis -d redis
# 进入redis容器
docker exec -it my-redis redis-cli
然后进入之后跟普通命令操作一样。
安装 & 连mongoDB
# 下载镜像
docker pull mongodb/mongodb-community-server
# 启动容器
docker run -d --name my-mongo -p 27017:27017 -v $HOME/.local/share/mongo-data:/data/db mongo