Docker的三大核心概念:镜像、容器、仓库
镜像:一个压缩包,不只是可执行文件,环境部署脚本,包含了完整的操作系统。镜像是Docker容器的先决条件,是容器启动的基础,镜像是静态的只读文件。
容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,相当于在只读文件上加一个可写层,可以将其启动、开始、停止、删除、而这些容器都是相互隔离、互不可见的,容器有自己独立的命名空间和资源。
仓库:类似代码仓库,是Docker集中存放镜像文件的场所。
# Install packages to allow apt to use a repository over HTTPS
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# Add Docker's official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Set up the repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# Update source lists
sudo apt-get update
# Install Docker
sudo apt-get install docker-ce
// 下载国内镜像源的ubuntu镜像,并指定版本为18.04
docker pull registry.docker-cn.com/library/ubuntu:18.04
// 推送镜像到docker hub, 需要先注册帐号
docker push <你的用户名>/<你打包时定义的镜像名>:<标签,版本号>
// 推送到你的一个私有镜像仓库,需要提前搭建好仓库服务(比如用harbor来搭建)
docker push <私有镜像库域名, 如a.b.com>/<项目名称>/镜像名:<标签>
docker run -d // -d 表示通过daemon方式来启动
-p 13306:3306 // 端口映射,将host主机的13306端口和docker容器的3306端口映射起来
-v /etc/mysql:/var/mysql // 目录挂载,将容器内的/var/mysql目录挂载到host主机的/etc/mysql目录, 可以实现容器内这个目录下的数据持久化
mysql // 镜像名,指定加载哪个镜像
docker ps // 列出目前正在运行的容器列表
docker ps -a // 列出所有的容器列表
docker start <容器id> // 通过容器id来重启某个容器, 批量操作的话,直接在参数后面再跟对应容器id即可
docker stop <容器id> // 通过容器id来关闭某个容器, 批量操作的话,直接在参数后面再跟对应容器id即可
docker rm <容器id> // 通过容器id来删掉某个已经停止掉的容器
docker rm -f <容器id> // 通过容器id来删掉某个正在运行的容器
docker rmi <镜像id>
docker rmi -f <镜像id> // 强制删除
docker exec -it <容器id> /bin/bash // 进入容器内并进入它的shell终端
docker exec -it <容器id> <shell命令> // 在容器内执行shell命令,比如
docker exec -it <容器id> ls -l / // 查看容器内系统根目录下所有文件或文件夹
重要知识,后续补上
Docker Dockerfile
Docker Compose
Docker Machine