环境:
操作系统:CentOS7
安装:
-
安装gcc
yum -y install gcc
-
安装yum-utils包,设置稳定存储库。
# 安装yum-utils包 yum install -y yum-utils # 设置稳定存储库 yum-config-manager --add-repo https://mirror.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
更新yum配置
yum makecache fast
-
安装docker-ce
yum -y install docker-ce
-
启动docker
systemctl start docker
-
配置加速镜像
# 创建配置文件 mkdir -p /etc/docker vi /etc/docker/daemon.json {"registry-mirror": ["http://hub-morro.c.163.com"]} ~ ~ # 重新加载配置文件 systemctl daemon-reload # 重启docker systemctl restart docker
-
卸载docker
# 卸载docker yum remove docker-ce # 删除文件 rm -rf /var/lib/docker
Helloword程序
-
拉取并运行helloword
docker run hellow-word
命令
-
镜像相关命令
# 列出本机上的docker镜像 docker images [参数] -a: 列出所有 -q: 只显示id -digests: 显示摘要信息 -no-tronc: 显示完整信息 # 搜索远程仓库中的docker镜像 docker search [镜像名] # 拉取docker镜像 docker pull [镜像名] # 推送docker镜像 # 1 登录 docker login --username=[用户名] # 2 tag标签对应 docker tag [镜像ID] [远程仓库路径]:[远程版本] # 3 执行推送 docker push [远程仓库路径]:[远程版本] # 删除本地docker镜像 docker rmi [参数] [镜像ID] -f: 强制删除 # 提交到本地docker镜像仓库 docker commit [参数] [容器ID] [新镜像名]:[新版本] -m: 提交说明 -a: 作者信息
-
容器相关命令
# 创建并运行docker容器 docker run [参数] [镜像名] [容器启动后执行的命令] -V: 数据卷 -d: 后台运行 -p: 指定端口 -P: 随机端口 -it: 以交互方式打开终端 --name: 指定容器名字 # 查看正在运行的docker容器 docker ps [参数] -a: 列出所有 -l: 显示最近创建的容器 -n: 显示最近创建的容器 (可以指定多少个) -q: 只显示容器ID -no-tronc: 显示完整信息 # 启动容器 docker start [容器ID] # 重启容器 docker restart[容器ID名] # 停止容器(正常停止) docker stop [容器ID] # 停止容器(直接停止) docker kill [容器ID] # 退出(在容器中执行) exit # 进入容器 docker attach [容器ID] # 在容器执行命令并将结果返回给宿主机 docker exec [容器ID] [命令] # 拷贝容器中的文件到宿主机 docker cp [容器ID]:[路径] [宿主机路径] # 删除容器 docker rm [参数] [容器ID名] -f: 强制删除
数据卷
- 主要作用:容器与宿主机之间的数据共享
# 创建并运行docker容器并指定数据卷 docker run -V [宿主机路径]:[容器内路径] -V [宿主机路径]:[容器内路径] helloword
Dockerfile
- 命令:
# 由dockerfile构建docker镜像 docker build -f dockerfile -t mydokerimage:1.0 . -f: 指定dockerfile文件路径 -t: 镜像名与版本 .: 最后以点结尾
- 关键字:
关键字 | 说明 |
---|---|
FROM | 基于哪个镜像进行构建 |
MAINTAINER | 镜像的作者 |
RUN | 容器构建时需要运行的命令 |
EXPOSE | 容器对外暴露的端口 |
WORKDIR | 默认进入的目录 |
ENV | 设置环境变量 |
ADD | 拷贝并解压文件到容器 |
COPY | 拷贝文件到容器 |
VOLUME | 设置数据卷 |
CMD | 指定容器启动时要运行的命令 只要最后一个会生效 |
ENTRYPOINT | 指定容器启动时要运行的命令 多个同时会生效 |
ONBUILD | 到构建一个基于本镜像的新镜像时会被调用 |
安装Tomcat
- 搜索tomcat镜像
docker search tomcat
- 拉取tomcat镜像
docker pull tomcat
- 运行tomcat
docker run -p 8080:8080 tomcat
安装Mysql
- 搜索mysql镜像
docker search mysql
- 拉取mysql镜像
docker pull mysql:5.6
- 运行mysql
docker run -p 3306:3306 --name mysql56 -V /mydir/mysql/conf:/etc/mysql/conf.d -V /mydir/mysql/logs:/logs -V /mydir/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWARD=123456 -d mysql:5.6
安装Redis
- 搜索redis镜像
docker search redis
- 拉取redis镜像
docker pull redis:3.2
- 运行redis
docker run -p 6379:6379--name redis32 -V /mydir/redis/data:/data -V /mydir/redis/conf:/usr/local/etc/redis/redis.conf -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf --appendonly=yes