docker的部署与安装
1.1. 安装Docker
1.1.1. 安装工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 |
1.1.2. 添加docker的yum库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
sudo yum makecache fast |
1.1.3. 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io |
1.1.4. 启动&开机启动
sudo systemctl start docker |
systemctl enable docker |
1.1.5. 测试Docker
docker run hello-world |
能出出来一句话 “hello docker”就是ok的
或者也可以通过查看版本来测试:docker version
2.1. Docker镜像加速器(阿里云)
配置加速器,否则下载镜像的时候回比较慢,默认是从docker hub下载
vi /etc/docker/daemon.json |
{ "registry-mirrors": ["https://5pfmrxk8.mirror.aliyuncs.com"] } |
sudo systemctl daemon-reload //重新加载配置 sudo systemctl restart docker //重启docker |
或者直接执行:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://5pfmrxk8.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker |
3.1. Docker服务操作
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
查看docker概要信息:docker info
查看docker帮助文档:docker --help
4. 部署项目-基础环境
4.1.MySQL部署
1.1.1. 拉取MySQL镜像
docker pull mysql:5.7 |
查看镜像
docker images |
1.1.2. 创建MySQL容器
docker run -di --name pethome_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 |
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
1.1.3. 进入MySQL容器,登陆MySQL
进入mysql容器
docker exec -it pethome_mysql /bin/bash |
登陆mysql
mysql -uroot -p123456 |
1.1.4. 远程登陆MySQL
开启远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; |
flush privileges; |
(1)我们在我们本机的电脑navicat上去连接虚拟机Centos中的Docker容器,这里192.168.246.130是虚拟机操作系统的IP
(2)在本地客户端执行建库脚本
执行“资源/建库语句/pethomedb.sql”
1.1.5. 查看容器IP地址
我们可以通过以下命令查看容器运行的各种数据
docker inspect pethome_mysql |
运行效果如下:
我们可以看到我们的数据库服务器的IP是172.16.0.2
4.2. Redis部署
1.1.
1.1.1. 拉取Redis镜像
centos是基础镜像
docker pull redis |
1.1.2. 创建Redis容器
docker run -di --name pethome_redis -p 6379:6379 redis --requirepass "123456" |
1.1.3. 客户端测试
在你的本地电脑命令提示符下,用window版本redis测试
redis-cli -h 192.168.246.135 |
4.3 Nginx部署
1.1.1. 拉取Nginx镜像
docker pull nginx |
1.1.2. 创建Nginx容器
docker run -di --name=pethome_nginx -p 80:80 nginx |
1.1.3. 测试Nginx
浏览器地址栏输入: http://192.168.246.135
整理的docker代码是:
nginx:
启动: start nginx.exe localhost 默认端口是80
停止: nginx.exe -s stop
重新加载: nginx.exe -s reload 修改了配置文件的时候需要重新加载.
Docker
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
Docker 镜像的操作
查看镜像:docker images
搜索镜像:docker serach [镜像名字]
镜像下载:docker pull [镜像名字:版本]
镜像的移除:docker rmi [镜像名字:版本]/[镜像的id]
移除全部镜像:docker rmi `docker images -q`
Docker 容器操作
查看运行的容器:docker ps -a
启动容器:docker run
-i:表示运行容器
-t:表示容器启动后会进入容器命令行(交互式)。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
ex:docker run -it --name=[自定义名字] 镜像名字:版本 /bin/bash
注:启动容器并进入命令行 退出 exit 会关闭容器
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
守护式: docker run -i -d --name=容器名字 -p=外端口:内端口 镜像名字:版本号
注:启动容器 在后台运行
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
ex: docker run -id --name=[容器名字] -p=外端口:内端口 -v=外部目录路径:内部目录路径 镜像名字:版本号
其他命令:
进入守护式容器:docker exec -it 容器的名字 /bin/bash [使用exit命令不会关闭容器]
关闭启动的容器:docker stop [容器的名字]
启动关闭状态的容器:docker start [容器的名字]
删除容器:docker rm [容器的名字/ID]
删除所有容器:docker rm `docker ps -a -q`
查看容器的IP: docker inspect [容器的名字]
实战:
1.安装mysql
docker run -id --name=mysql57 -p=3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
2.安装redis
docker run -id --name=redis -p=6379:6379 redis --requirepass "123456"
构建镜像:
1.基于容器构建【就是把一个运行的容器再次打包】
docker commit [容器名字] 新镜像的名字:版本号
server {
listen 80;
server_name admin.pethome.com;
location / {
root pethome_admin;
index index.html;
}
}
server {
listen 80;
server_name www.pethome.com;
location / {
root pethome_front;
index home.html;
}
}
https://blog.csdn.net/SEVENY_/article/details/103856623