1.Dokcer安装
我使用的是MacOS 10.13版本,通过docker官网下载的docker desktop提示不支持我的系统,因为我的系统太旧了。
因此尝试使用Homebrew来安装,经过一番波折,最终安装成功。安装方式如下:
1.1安装或更新Homebrew
首先安装或更新Homebrew,我运行:
brew update
提示无法连接:Failed to connect to raw.githubusercontent.com port 443: Connection refused
尝试了几种网上提供的方案都无法解决,于是使用Gitee重新安装Homebrew,参考地址:https://gitee.com/cunkai/HomebrewCN
运行脚本:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
会重新安装Homebrew,并把原来的文件备份到桌面上(起一个名为"Old_Homebrew"的文件夹)。
经过这一番折腾,Homebrew总算可以正常使用了。
1.2使用Homebrew下载并安装docker desktop
下面使用Homebrew Cask来安装dokcer,命令如下:
brew cask install docker
下载,安装需要等待一段时间。安装完毕后,系统应用中就有了docker desktop应用程序。
在终端运行查看docker版本的命令:
docker -v
得到信息为:Docker version 20.10.0, build 7287ab3
至此,docker安装成功。
2.docker基本命令
2.1镜像相关命令:
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
本文下载镜像使用http://hub.daocloud.io/下载镜像。
(1)下载镜像:
docker pull ubuntu:13.10
命令解释:镜像名称:版本号,如果不采用默认的镜像站点,而是指定镜像(daocloud镜像源),可以使用如下格式:
docker pull daocloud.io/library/tomcat:8.5.15-jre8
(2)列出镜像列表:
docker images
(3)删除镜像:
docker rmi 镜像id(IMAGE ID)
(4)镜像导入/导出:
将本地镜像导出:
#导出
docker save -o 导出路径 镜像id
#导入
dokcer load -i 导入路径
#修改镜像名称(NAME)和版本(TAG)
docker tag 镜像id 名称:版本
2.2容器相关命令:
(1)运行容器:
#简单命令
docker run 镜像id|镜像名称[:版本]
#常用参数
docker run -d -p 80:80 docker/getting-started
docker run -d -p 8080:8080 --name tomcat b8dfe9ade316
命令解释:
-d:后台执行,
-p:指定端口 宿主机端口:容器端口,
--name:容器名称,
-i :交互式操作,
-t:终端
/bin/bash:进入容器的bash
(2)查看容器列表:
docker ps [-aq]
命令解释:
默认无参数:列出所有运行的容器
-a:列出所有容器,包括没运行的
-q:只列出容器id
(3)查看容器日志:
docker logs -f 容器id
名称解释:
-f:滚动查看日志最后内容
(4)进入到容器内部:
docker exec -it 容器id /bin/bash
(5)删除容器:(删除容器之前需要先停止容器)
#停止容器 dokcer stop 容器id #停止全部容器 docker stop $(docker ps -qa) #删除指定容器 docker rm 容器id #删除全部容器 docker rm $(docker ps -qa)
(6)启动容器:
docker start 容器id
(7)将宿主机的文件复制到容器内:
docker cp 宿主机文件路径 容器id:容器内部文件路径
(8)数据卷Volume:将宿主机的目录映射到容器中的目录中,可以在宿主机中直接管理容器中的文件
创建数据卷:
docker volume create 数据卷名称 #创建数据卷之后,默认会存放在: /var/lib/docker/volumes/数据卷名称/_data
查看数据卷信息:
docker volume inspect 数据卷名称
查看全部数据卷:
docket volume ls
删除数据卷:
docker volume rm 数据卷名称
数据卷的使用:
#当映射数据卷时,如果原来不存在,则会自动创建 docker run -v 数据卷名称:容器内路径 镜像id #指定一个路径作为数据卷的存放位置 docker run -v 宿主机路径:容器内路径 镜像id