本文主要介绍了Docker的安装、镜像操作、容器操作!
Docker是一个开源的应用容器引擎,让开发者可以打包应用及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上。使用Docker可以更方便地打包、测试以及部署应用程序。
重要概念:
images = 镜像(镜像相当于类概念)
container = 容器(container相当于实例的概念)
yum-utils
;yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce
systemctl start docker
可以使用阿里云的镜像加速,参考:https://www.runoob.com/docker/docker-mirror-acceleration.html
注意:阿里云上有图文操作文档,无论你是Windows还是Mac按文档操作即可,一点不担心。如下是我的配置图:
使用自己的账号有自己专属的阿里云镜像地址
docker的配置是通过json文件来配置的,这里配置镜像也需要通过json文件来配置
{
"registry-mirrors": ["https://nubcahe0.mirror.aliyuncs.com"]
}
docker images
docker search redis
docker pull redis
docker search
命令查找出是否有该镜像,不能找到该镜像支持的版本。
# 删除latest
docker rmi redis
# 删除指定tag
docker rmi redis:7
IMAGE ID
删除镜像docker rmi 5d89766432d0
# -t 表示指定镜像仓库名称/镜像名称:镜像标签 .表示使用当前目录下的Dockerfile文件
docker build -t fire/fire-admin:1.0-SNAPSHOT .
# 查看刚构建的镜像
docker images
# 从容器b9480afc7572构建镜像
docker commit b9480afc7572 myubuntu:1.0
# 查看刚构建的镜像
docker images
# 打私有标签
docker tag myubuntu:1.0 localhost:5000/myubuntu:1.0
# 推送
docker push localhost:5000/myubuntu:1.0
# 登录Docker Hub
docker login
# 推送到远程仓库
docker push firefishdocker/fire-admin:1.0-SNAPSHOT
docker commit b9480afc7572 myubuntu:1.0
docker tag myubuntu:1.0 localhost:5000/myubuntu:1.0
curl http://localhost:5000/v2/_catalog
# {"repositories":[]}
# 打私有标签
docker tag myubuntu:1.0 localhost:5000/myubuntu:1.0
# 推送
docker push localhost:5000/myubuntu:1.0
curl http://localhost:5000/v2/_catalog
# {"repositories":["myubuntu"]}
curl http://localhost:5000/v2/myubuntu/tags/list
# {"name":"myubuntu","tags":["1.0"]}
# 不要写成http://localhost:5000/myubuntu:1.0
docker pull localhost:5000/myubuntu:1.0
docker run -p 6379:6379 --name redis \
-e TZ="Asia/Shanghai" \
-v /mydata/redis/data:/data \
-d redis:7 redis-server --appendonly yes
-p
:将宿主机和容器端口进行映射,格式为:宿主机端口:容器端口;(建议设置)宿主机端口用户可指定,容器端口是预定义的;
宿主机端口不能重复,容器端口可以重复;
设置后宿主机才能与容器连接
--name
:指定容器名称,之后可以通过容器名称来操作容器;(强烈建议设置)设置名称便于后续的操作
-e
:设置容器的环境变量,这里设置的是时区;-v
:将宿主机上的文件挂载到宿主机上,格式为:宿主机文件目录:容器文件目录;这类需求通常是
挂载配置文件目录
、挂载数据存储目录
-d
:表示容器以后台方式运行。(建议设置)docker ps
docker ps -a
可以用容器名称或容器ID
注:体现了docker run时指定–name的重要性
# NAMES
docker stop redis
# CONTAINER ID
docker stop c5f5d5125587
启动之前创建过的容器
docker start redis
进入容器的命令格式是:docker exec -it 容器 命令
# 进入redis容器的命令行操作中
docker exec -it 9e38ce427c61 redis-cli
# 或者
docker exec -it redis /bin/bash
# 或者
docker exec -it redis sh
删除容器会删除容器的所有数据,不可恢复,慎重使用
docker rm redis
docker logs -f redis
一般用来修改容器中的文件
# 格式是:docker cp 源文件 目标文件
# 容器 ---> 宿主机
docker cp redis:/data/dump.rdb dump.rdb
# 宿主机 ---> 容器
docker cp test.log redis:/data