Centos 安装 docker
镜像下载、域名解析、时间同步请点击 阿里云开源镜像站
一、docker安装
centos安装docker
sudo yum update
sudo yum install -y yum-utils device-mapper-persistent-data 1vm2
sudo yum-config-manager --add-repo http://mirrors.ailiyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce
docker -v
sudo vim /etc/docker/daemon.json
添加
{
"registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"]
}
1 docker 启动
systemctl start docker
2 查看docker状态
systemctl status docker
3 停止docker
systemctl stop docker
4 重启docker
systemctl restart docker
5 设置开机自启动
systemctl enable docker
docker info
docker --help
二、docker 常用命令
1 镜像相关命令
1.1 查看镜像
docker images
1.2 搜索镜像
docker search centos
1.3 拉取镜像
docker pull 镜像名称
eq:
docker pull centos
1.4删除镜像
1.4.1 按id删除镜像
docker rmi 镜像id
1.4.2删除所有镜像
docker rmi `docker rmi -q`
2 容器相关命令
2.1 查看正在运行的容器
docker ps
# 查看所有
docker ps -a
2.2 创建启动容器
命令及参数
命令:docker run
-i: 表示运行容器
-t: 表示容器启动后会进入其命令行
--name: 为创建的容器命名
-v: 表示目录映射关系
-d: 会创建一个守护容器在后台运行(这样创建容器不会自动登录容器,如果只加-i-t两个参数,创建后自动登录容器)
-p: 表示端口映射,前者是宿主主机端口,后者是容器内的映射端口
(1)交互式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/nash
docker run -it --name=mycentos centos:7 /bin/nash
#查看启动的容易
docker ps
(2)守护式方式创建容器
docker run -di name=容器名称 镜像名称:标签
登录守护式方式
docker exec -it 容器名称(或者容器id) /bin/bash

2.3 停止容器
docker stop 容器名称(或者容器id)

2.4 启动容器
docker start 容器名称(或者容器id)
2.5 文件拷贝
docker cp 需要拷贝的文件或者目录 容器名称:容器目录
#容器拷贝宿主机
docker cp 容器名称:容器目录 需要拷贝的文件或者目录

2.6 目录挂载(同步)
docker run -di --name=mycentos3 -v /usr/local/myhtml:/usr/localmyhtml centos:7
2.7 查看容器ip地址
docker inspect 容器名称
eq: 显示很多信息
docker inspect mycentos2

docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos2

2.8 删除容器
if 容器正在运行 需要关闭 然后移除
docker rm 容器名称

三、应用部署
1 MySQL部署
(1)拉取mysql镜像
docker pull centos/mysql-57-centos7
(2)创建容器
docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
-p: 代表端口映射,格式 宿主机映射端口:容器运行端口
-e: 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登录密码
(3)进入mysql容器
docker exec -it tensquare_mysql /bin/bash
(4)登录mysql
mysql -u root -p
(5)远程登录mysql
连接宿主机的ip 端口33306
2 tomcat部署
(1)拉取tomact镜像
docker pull tomcat:7-jre7
(2)创建容器
端口映射
目录挂载
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
3 Nginx部署
(1)拉取nginx镜像
docker pull nginx
(2)创建容器
docker run -di --name=mynginx -p 80:80 nginx
(3)进入nginx容器
docker exec -it mynginx /bin/bash
镜像目录

nginx 安装目录
/etc/nginx

nginx 配置文件 nginx.conf

conf.d/*.conf :包含的配置文件


/usr/share/nginx/html文件夹:访问nginx静态页面

4 Redis部署
(1)拉取redis镜像
docker pull redis
(2)创建容器
docker run -di --name=myredis -p 6379:6379 redis
四、迁移与备份
1 容器保存为镜像
docker commit mynginx(容器名称) mynginx_i(镜像名称)
2 镜像备份
docker save -o mynginx.tar(导出的文件) mynginx_i(镜像名称)
3 镜像恢复
docker load -i mynginx.tar(文件名)
五、Dockerfile
1 Dockerfile简介
Dockerfile由一系列命令和参数构成的脚本,这些命令应用于基础镜像并穿件一个新的镜像。
2 常用命令




六、Docker私有仓库
1 创建私有仓库镜像
(1拉取私有仓库镜像
docker pull registry
(2) 启动私有仓库镜像
docker run -di --name=registry -p 5000:5000 registry
(3) 验证
打开浏览器访问http://192.168.141.129:5000/v2/_catalog
看到{"repositories":[]}表示私有仓库搭建成功并且内容为空
(4)修改/etc/docker下的daemon文件
添加
"insecure-registries":["192.168.141.129:5000"]
重启docker
systemctl restart docker
2 镜像上传到私有仓库
(1)标记此镜像为私有仓库的镜像
docker tag jdk1.8(自己的镜像) 192.168.141.129:5000
(2)上传标记的镜像
docker push 192.168.141.129:5000/jdk1.8