首页 > 编程知识 正文

Docker 基本使用与常用环境,word基本使用教程

时间:2023-05-04 17:40:24 阅读:246294 作者:1780

安装docker(Centos) 前期准备

我们docker 安装前应该配置一下电脑,为了方便演示docker的使用,以下操作均在centos7进行,并且使用 root 账号进行,我们先关闭防火墙。

systemctl stop firewalld.service #关闭防火墙systemctl disable firewalld.service #禁止防火墙开机启动

关闭selinux(阿里云跳过)

/usr/s忐忑的手套/sestatus -v #查看selinux 状态# SELinux status: enabled 为开启

永久关闭 selinux ,编辑一下文件将 SELINUX=enforcing 改为 SELINUX=disabled 。

vi /etc/sysconfig/selinux

阿里云、腾讯云中默认关闭 selinux,不需要此操作;

微软云、自己安装的centos镜像默认开启;

不关闭可能会无法将容器中的卷挂载到磁盘或其他异常情况。记得 reboot 重启电脑

还有可能系统源不够新,可能出现问题,我们更新一下yum。

yum update -y #更新源 安装(centos7.x)

下面开始正式安装

#yum的方式安装dockeryum install docker -y#启动docker服务service docker start#设置docker服务为开启启动chkconfig docker on

我此时演示安装的版本为 1.13.1,大家可以通过命令 docker version 查看。

基本配置 阿里加速

我们可以访问 阿里云容器服务 ,如果没有账号,那么可以注册一个。

使用 vi 编辑一下文件

vi /etc/docker/daemon.json

将其中{}中增加参数变为一下内容,为json格式,如果原来就有一些配置,那么在原来基础上添加即可。

{"registry-mirrors": ["https://registry.docker-cn.com"]}

或者新安装的 docker 可以直接

cat > /etc/docker/daemon.json <<EOF{"registry-mirrors": ["https://registry.docker-cn.com"]}EOF

重载配置和重启docker

systemctl daemon-reloadsystemctl restart docker 开启远程(用不到的跳过)

有时我们需要通过远程访问docker的方式,那么我们就要开启docker的远程访问。

编辑配置文件 vim /lib/systemd/system/docker.service 修改以下位置为 ExecStart=/usr/忐忑的手套/dockerd-current -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 保存退出,然后加载配置 systemctl daemon-reload 重启服务 service docker restart 检查是否可以连接 curl http://localhost:2375/verion

也可以不在一个主机,用浏览器通过ip访问,如果主机可以访问,同网段下其他主机不能访问,请检查端口是否开放,阿里云等服务器需要配置放行。

安装与运行 常用命令

如果大家不想直接看命令可以到常用安装查看示例。这里主要简单的讲一下常见的命令,后面将会详细讲述常用功能对应的命令详细使用。

镜像操作

下面简单的介绍一下docker中镜像的查找、拉取、上传、删除、导入导出等

命令解释示例search从仓库查找镜像docker search centospull从仓库获取镜像到本地docker pull centoslogin登陆到仓库docker loginpush上传镜像到仓库docker push centosimages查看本地镜像docker imagesrmi删除本地镜像docker rmi centostag标记本地镜像docker tag docker.io/centos lu/centos:v1容器操作 run docker run centos 运行参数解释 常用参数作用解释-e环境变量,容器启动所需要的环境变量值格式 key=value-p端口映射,格式 8080:80 ,8080为主机端口号,80为容器端口号-v挂载磁盘,/data:/var ,前面的是主机磁盘路径,后面为容器内路径–name给容器起名字-d后台运行–restart配置重启策略:
no,默认策略,在容器退出时不重启容器
on-failure,在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3,在容器非正常退出时重启容器,最多重启3次
always,在容器退出时总是重启容器
unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动常用安装 mysql

以mysql5.7为例,: 号跟着版本,可以不进行pull,直接进行run,会自己进行下载镜像。

docker pull mysql:5.7

运行 mysql5.7

docker run --name mysql57 -e MYSQL_ROOT_PASSWORD=root --privileged=true -p 3306:3306 -d mysql:5.7 --lower_case_table_names=1

运行 mysql5.6

docker run --name mysql56p3306 -e MYSQL_ROOT_PASSWORD=root --privileged=true -p 3306:3306 -v /docker/mysql56p3306/data:/var/lib/mysql -v /docker/mysql56p3306/conf.d:/etc/mysql/conf.d -d mysql:5.6 --lower_case_table_names=1

运行 mysql8

docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=root --privileged=true -p 3306:3306 -v /docker/mysql8p3306/data:/var/lib/mysql -v /docker/mysql8p3306/conf.d:/etc/mysql/conf.d -d mysql --lower_case_table_names=1

以上参数参考来源docker官网 mysql 部分,下面是部分参数解释

–name 指定此容器的名字为mysql57,之后使用名字进行重启、停止、删除等MYSQL_ROOT_PASSWORD 用于设置root账户默认密码3306:3306 将主机的3306端口映射到容器的3306端口,当然主机端口可以修改,mysql容器端口必须为3306,这是由容器镜像决定的-v 为磁盘的映射,我们可以通过此映射进行主机和容器的数据交互-d 后台运行–privileged=true 赋予权限,解决目录权限不足问题。–lower_case_table_names=1 忽略大小写。

mysql 想要远程连接还需要设置开启远程访问

mysql -uroot -prootuse mysql;GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;FLUSH PRIVILEGES; nginx docker run --name nginx80 -p 80:80 --privileged=true -v /docker/nginx80/conf.d:/etc/nginx/conf.d -v /docker/nginx80/html:/usr/share/nginx/html -v /docker/nginx80/logs:/var/log/nginx -d nginx

使用 https 443 ssl

docker run --name nginx80 -p 80:80 -p 443:443 --privileged=true -v /docker/nginx80/conf.d:/etc/nginx/conf.d -v /docker/nginx80/html:/usr/share/nginx/html -v /docker/nginx80/logs:/var/log/nginx -v /docker/nginx80/ssl:/ssl -d nginx

挂载目录解释

/docker/nginx80/conf.d:/etc/nginx/conf.d 用于放置配置文件,方便在宿主机修改配置文件。

/docker/nginx80/html:/usr/share/nginx/html 用于放置html静态网页,方便在宿主机替换网页。

/docker/nginx80/logs:/var/log/nginx 日志方便在宿主机查看。

/docker/nginx80/ssl:/ssl 挂载ssl 证书路径。

创建配置到 /docker/nginx80/conf.d ,当然此配置可以根据需要自行配置,下面以默认配置为例。

vim default.conf server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }}

配置ssh https

新建ssh 配置文件 https_params,注意修改自己的证书路径。

listen 443 ssl;ssl_certificate /ssl/****.com.pem; #根据实际修改,路径为容器内路径ssl_certificate_key /ssl/****.com.key; #根据实际修改,路径为容器内路径ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;if ( $scheme != https ){rewrite ^/(.*) https://$host/$1 permanent;}

在 server {} 中添加一行

include /etc/nginx/conf.d/https_params;

注意:路径问题,以上两处配置的路径应该是容器内的路径。

配置如vue之类单页应用在 server ,location中 添加配置:

try_files $uri $uri/ /index.html; mongo docker run --name mongo27017 -p 27017:27017 -v /docker/mongo34p27017:/data/db -d mongo:3.4

创建用户修改密码

#进入容器docker exec -it mongo27017 mongo admin#创建用户和密码db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }); #验证一下对不对db.auth("admin","123456");#退出exit修改密码 use admin;switched to db admin> db.changeUserPassword('admin','88889999'); redis docker run --name redis6379 --privileged=true -p 6379:6379 -v /docker/redis6379/data:/data --restart=always -d redis gitlab中文 docker run --detach --publish 8443:443 --publish 10080:80 --name gitlab --restart unless-stopped --volume /docker/gitlab/etc:/etc/gitlab --volume /docker/gitlab/log:/var/log/gitlab --volume /docker/gitlab/data:/var/opt/gitlab beginor/gitlab-ce:11.3.0-ce.0

启动完成访问 http:ip:10080

第一次访问需要修改密码

gitea docker run --name=gitea -p 10022:22 -p 10080:3000 -v /data/gitea:/data -d gitea/gitea:latest rabbitmq docker run -d --hostname rabbithost --name rabbitmq -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -p 15672:15672 -p 5672:5672 rabbitmq:3-management

RABBITMQ_DEFAULT_USER设置默认用户名

RABBITMQ_DEFAULT_PASS 设置默认密码

映射端口 15672 为web访问端口,5672为服务端口。

如何使用TypeScript实现一个类型安全的EventBusVue新一代状态管理工具Pinia的具体使用vue3.x使用swiperUI动态加载图片失败的解决方案分布式存储可以等同于超融合吗?jquery如何给元素增加宽度PyCharm中怎么创建Django项目

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。