docker 简介和使用总结:image,container,dockfile,nginx,redis,compose
一。安装docer-ce
#在root 用户下
第一步 卸载旧的安装包
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 \
https://download.docker.com/linux/centos/docker-ce.repo --默认是国外的
#如果没有vpn 建议安装阿里云的
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum 索引安装包
yum makecache fast
第四步# 安装docker相关的
yum install docker-ce docker-ce-cli containerd.io (可能会出错,多试几次)
第五步启动docker 服务
systemctl start docker
#查看docker 是否安装完成
docker --version
第六步 hello world
docker run hello-world
#查看所有的docker 镜像
docker images
docker search aspnet
docker pull mcr.microsoft.com/dotnet/core/aspnet:latest
第二章、Docker 卸载
# 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 删除资源
rm -rf /var/lib/docker
第三章、Docker镜像相关指令
1 docker镜像基本命令:
查看所有镜像
docker images
- REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
获取新的镜像:
docker pull 名称
查找镜像
docker search httpd
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
删除镜像(会提示先停止使用中的容器)
docker rmi 镜像name/镜像id
创建镜像
使用 Dockerfile 指令来创建一个新的镜像
docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
更新镜像
1 运行的容器
2 docker exec -it fd2c868cadlc /bin/bash 进入容器操作
3 apt-get update
4 exit
5 docker commit 来提交容器副本
docker commit -m="nginx has update0618" -a="eleven" 79323dxds323 nginx-8081-8082:vCustom2
- -m: 提交的描述信息
- -a: 指定镜像作者
- 79323dxds323:容器 ID
- nginx-8081-8082:vCustom2: 指定要创建的目标镜像名-tag
(要点时间)
设置镜像标签
docker tag 命令,为镜像添加一个新的标签。
docker tag 860c279d2fec runoob/centos:dev
docker tag 镜像ID,这里是 860c279d2fec ,用户名称、镜像源名(repository name)和新的标签名(tag)。
二。安装docker,mysql 8.0 及常用命令
1.安装docker yum install docker-io
2.启动docker service docker start
3.查看docker是否启动成功
ps -ef|grep docker
三。使用docker安装mysql
1.查询mysql镜像:
docker search mysql
2.拉取安装mysql
docker pull mysql
3.查看镜像:docker images
4.在opt下创建文件夹
cd /opt/
mkdir mysql_docker
cd mysql_docker/
echo $PWD
5.启动mysql容器,在var/lib/docker/containers/下查看容器
docker run --name mysqlserver -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:latest
守护态运行 docker run时添加-d参数,可以让docker容器在后台以守护态形式运行
docker run -d --name mysqlserver -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:latest
cd /var/lib/docker/containers/
查看mysql进程:docker ps -a
7.进入mysql容器,并登陆mysql
docker exec -it mysqlserver bash
mysql -uroot -p
mysql> select now();
8.开启远程访问权限
use mysql;
select host,user from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
9. 修改MySQL8 root密码
执行命令: alter user root@"localhost" identified by "your_new_passwd";
退出:exit;
10.用工具远程连接测试:
三docker常用命令
1.查看docker日志 docker logs -f --tail 10 a4dac74d48f7
2.查看进程 docker ps -a
3.关闭docker中mysql容器 docker stop mysqlserver
4.重启docker中mysql重启 docker restart mysqlserver
5.重启docker systemctl restart docker
6.关闭docker systemctl stop docker
7.删除容器:docker rm 容器id或名称
8.删除镜像:docker rmi 镜像id或名称
9.守护态运行 docker run时添加-d参数,可以让docker容器在后台以守护态形式运行
10.进入容器的方式:attach,exec,nsenter工具
11.进入一个后台正在运行的容器:
docker exec -it 容器id或名称 /bin/bash
12.端口映射实现访问容器:docker run -p 6169:80
13.使用--name给容器命名,便于使用 docker run -d --name mysqlserver-new mysqlserver
14.创建一个数据卷容器 docker run -it -v /dbdata --name dbdata mysqlserver
15.挂载dbdata容器中的数据卷
docker run -it --volumes-from dbdata --name db1 mysqlserver
docker run -it --volumes-from dbdata --name db2 mysqlserver
转自:
https://www.cnblogs.com/jiefu/p/12
二。硬件发展速度:asp.net+sql+redis+nginx:资源利用率太低,多软件工具不能隔离,相互影响,不能快速部署
0.docker 简介和使用总结:image,container,dockfile,nginx,redis,compose
默认镜像:精简版linux+coreclr
1.可定制的安装包
2.不建议运行时修改配置文件
容器:运维工具
镜像容器里部署asp.netcore webapi
配置文件名要小写:lognet4.config
docker exec -it 1092
cat ls
cat appsettings.json
clear
docker hub :镜像库
2.--------docker file 用来构建镜像的文本
docer run -d -p 8081:80 -v /vip/epublish:/app --wrkdir /app mcr.microsoft.com/dotnet/core/aspnet dotnet /app/zhaoxi.aspnetcore31.dockerproject.dll
docker build -t core31v1.619 -f Dockerfile .
docker run -itd -p 8082:80 core31v1.619
docker logs core31v1.619
docker rmi core31v1.619
docker stop $(docker ps -q) & docker rm $(docker ps -aq) #一次性删除全部容器
1.发布后的文件+官方CLR镜像
docker run -d -p 8081:80 -v /vip/epublish:/app --workdir /app mcr.microsoft.com/dotnet/core/aspnet dotnet /app/Zhaoxi.AspNetCore31.DockerProject.dll
docker run -d -p 8081:80 -v /vip/epublish:/app --workdir /app mcr.microsoft.com/dotnet/core/aspnet dotnet /app/Zhaoxi.AspNetCore31.DockerProject.dll
2.用dockerfile 去构建镜像
Asp.Net Core+Dockerfile 2 Build镜像 3 Run
docker build -t core31v1.619 -f Dockerfile .
docker run -itd -p 8082:80 core31v1.619
3.nginx+集群
Nginx镜像 单独的nginx.conf(对应版本) 修改配置文件,挂载进去 Run
docker run -d -p 8086:80 -v /vip/enginx/:/var/log/nginx/ -v /vip/enginx/nginx.conf:/etc/nginx/nginx.conf:ro --name elnginx nginx
4.docker+redis
docker run -d -p 8085:6380 -v /vip/eredis/redis.conf:/usr/local/etc/redis/redis.conf -v /vip/eredis/data:/data:rw --name redis02 redis:6.0 redis-server /usr/local/etc/redis/redis.conf
bgsave,绑定Ip,开启redis远程访问
5.docker + redis + 虚拟网卡
下载 curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
授权 chmod +x /usr/local/bin/docker-compose docker-compose docker-compose –version docker-compose stop
6.基于compse创建容器:docker compose , docker 管理
下载 curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
授权 chmod +x /usr/local/bin/docker-compose docker-compose docker-compose –version docker-compose stop
7.compse.yml批处理一次创建2个asp.netcore,redis,nginx容器
www.toyaml.com在线检查yaml文件格式
-d 后端运行
8.docker machine:管理多台服务器主机
9.docker swarm 集群管理工具
10.kubernets--google
docer search nginx
docker pull nginx
docker logs e232
docker exec -it e232 /bin/bash
ls
cd etc
ls
cd nginx
ls
cat nginx.config
------------------
虚拟机VM
docker
namespace
centos7+docker+ecs+asp.netcore (1he2g)
docker --version
docker ps -a
docket stop 9f3a
up exited
systemctl start
clear
docker logs id
curl:
docker run hello word
精简版linux+coreclr
docker pull mcr.microsoft/aspnetcore:latest
.netframework(mono)