安装&&配置
一键安装
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && sudo apt-get update && sudo apt-get install -y docker-ce
镜像加速器配置
修改daemon配置文件 /etc/docker/daemon.json 来使用加速器
sudo mkdir -p /etc/docker && sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://epsax6ut.mirror.aliyuncs.com"],
"log-driver":"json-file",
"log-opts": {"max-size":"10m", "max-file":"3"}
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
帮助命令
sudo docker version # 显示docker版本信息
sudo docker info # 显示docker系统信息,包括镜像和容器数量
sudo docker stats # 查看cpu状态
sudo docker [command] --help # 查看帮助
镜像命令
docker images 查看镜像
sudo docker images # 查看所有主机上的镜像
# 参数
-a # 列出所有镜像
-q # 只显示镜像id
docker search 搜索镜像
sudo search [name] # 搜索
#参数
--filter=[opt]=[condition] # 过滤
docker pull 下载镜像
sudo docker pull [name][:tag] # 如果不写tag,默认lastest版本,如下例
sudo docker pull mysql:8.0 # 8.0版本mysql
docker rmi 删除镜像
sudo docker rmi -f [IMAGE ID]|[REPOSTORY] # 通过镜像id或名字删除,rmi的i代表镜像,-f 强制,如下例
sudo docker rmi -f $(sudo docker images) # 删除所有镜像
容器命令
前提:有镜像才能创建容器,下载centos镜像测试学习
sudo docker pull centos # 先下载镜像
新建容器并启动
sudo docker run [opt] image
# 参数
--name="Name" # 容器名字,用来区分容器
-d # 后台运行
-it # 使用交换方式运行,进入容器查看内容
-p # 指定端口
其中有四种
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
容器端口
-P # 随机指定端口
# 测试
sudo docker run -it centos /bin/bash # 进入新的centos
列出所有运行中的容器
sudo docker ps # 查看
-a # 列出所有当前正在运行的容器+历史运作过的容器
-q # 同镜像的-q
-n=? # 显示最近的创建的容器
退出容器
exit # 直接停止容器并退出
CTRL + P + Q # 容器不停止退出(按键顺序不能错)
进入已创建的容器
# 在不停止容器退出后,再次进入容器(前提是容器已经启动)。以刚刚的centos为例:
sudo docker exec -it [containerID] /bin/bash
# 或者
sudo docker attach [containerID]
删除容器
sudo docker rm [容器id] # 删除指定容器,不能删除正在运行的容器
sudo rm -f $(sudo docker ps -aq) # 删除所有容器
启动和停止容器
sudo docker start 容器id # 启动容器
sudo docker restart 容器id # 重启容器
sudo docker stop 容器id # 停止当前运行的容器
sudo docker kill 容器id # 强制停止当前容器
run是新建一个容器,start是启动一个已经存在的容器
其他常用命令
后台启动容器
sudo run -d centos # 后台启动centos
# 这里有一个坑:docker容器后台运行,必须要有一个前台进程,docker发现没有前台就会,就会自动停止
日志
sudo docker logs # 查看日志
# 参数
-f # 实时显示
-t # 时间戳
--tail # 从尾部算,查看的日志条数
查看容器中运行进程
sudo docker top [containerID]
查看镜像的元数据
sudo docker inspect [containerID]
从容器内拷贝文件到主机上
sudo docker cp [containerID]:[path] [DesPath] # 将容器内路径为path的文件拷贝到主机DesPath上
# 路径交换就能实现从主机拷贝到容器内