环境:阿里云ECS centos 7.3
文档:https://docs.docker.com/
Mac安装Docker
下载地址
https://docs.docker.com/docker-for-mac/install/
配置镜像
• 推荐阿里云加速器
阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了:
• 在Mac上
Docker for mac 应用图标 -> Perferences… -> Daemon -> Registry mirrors中填写:复制的地址
验证成功
docker info 看到如下 注册镜像即成功
Linux安装Docker
安装地址:
https://docs.docker.com/engine/install/centos/
官网安装地址
https://docs.docker.com/engine/install/
确认系统版本
cat /etc/redhat-release 或 lsb_release -a 确认为 CentOS 7.0+
安装gcc环境
yum -y install gcc
yum -y install gcc-c++
卸载原有的Docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装需要的软件包
yum install -y yum-utils
设置镜像仓库
阿里仓库--推荐
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dcoker自带的--会很慢
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
查看版本
yum list docker-ce --showduplicates | sort -r
安装docker
选择合适的版本进行安装
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
安装最新版
yum -y install docker-ce
启动Docker
启动Docker:systemctl start docker
开机自启动:systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service
验证成功
docker version 显示dcoker的版本信息即代表成功
常用命令
• 搜索镜像
docker search 软件名
• 拉取镜像
docker pull 镜像名
• 查看本地镜像
dcoker images
• 删除镜像或容器
docker rmi 镜像/容器的id/name
• 强制删除
docker rmi -f 镜像/容器的id/name
• 查看当前正在运行的容器
docker ps
• 查看所有容器的状态
docker ps -a
• 启动/停止某个容器
docker start/stop 容器id/name
• 运行一个容器
docker run 镜像
• 目录映射
-v 格式: 宿主机目录:容器目录 比如 : -v /etc/testfile:/etcl/local/test
• 重命名为mycentOS,并以交互式命令运行容器
docker run --name mycentOS -it 镜像名 /bin/bash
• 重命名为 mysql-cloud 以后台守护进程,映射 宿主3306到docker3306 运行mysql的容器
docker run -d -p 3306:3306 --name mysql-cloud mysql
• 进入某个容器(使用exit退出后容器也跟着停止运行)
docker attach id
• 以交互式命令进入到容器中
docker exec -it 容器id/name
• 查看docker系统信息
docker info
Docker安装mysql
搜索mysql镜像
docker search mysql
拉取mysql镜像
docker pull mysql,后面不跟tag,默认为latest 最新的
运行容器
查看端口是否被占用:
lsof -i:3306
docker run -d -p 3306:3306 --name mysql-cloud -e MYSQL_ROOT_PASSWORD=123456 mysql
进入容器
docker exec -it mysql-cloud /bin/bash
Mac下安装流程
连接docker容器中的mysql
连接成功
DockerFile编写
是什么
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。整个Dockerfile一半分为四部分:基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令。
SpringBoot打包到docker
准备springboot项目,并打成 jar包
boot-docker.jar
编写DockerFile文件
进入 /study/component/docker-demo目录,将 boot-docker.jar复制到该目录,并在该目录编写 Dockerfile(注意小写的file,之前写错为DockerFile,一直有报错)
FROM java:8
MAINTAINER zhilin
VOLUME /tmp
ADD boot-docker.jar demo.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","demo.jar"]
建立镜像
docker build -t first-springboot:dev
运行容器
docker run -dp 8080:8080 --name springboot-docker first-springboot:dev
页面验证
浏览器输入 http://localhost:8080/ 验证ok
• 另起宿主8081端口验证,验证也ok
运行 nginx
编写Dockerfile
FROM nginx
RUN "<h1>Hello,docker nginx!</h1>" > /usr/share/nginx/html/index.html
建立镜像和运行容器
验证结果