linux cpu占用率如何看
244
2022-10-22
Docker容器命令部署
传送门
yum install docker-ce docker-ce-cli containerd.io yum install -y docker-ce docker-ce-cli containerd.io
安装指定版本的,首先列出可用的版本有哪些,然后选择并安装
yum makecache #生成仓库缓存
安装docker
yum install docker -y
Start Docker 启动docker
systemctl start docker #启动dockersystemctl enable docker #开机启动dockersystemctl status docker #查看docker状态
# docker run hello-world
# docker version
查看执行过的docker进程:docker ps --all
DaoCloud 加速器 是广受欢迎的 Docker 工具,解决了国内用户访问 Docker Hub 缓慢的问题。DaoCloud 加速器结合国内的 CDN 服务与协议层优化,成倍的提升了下载速度。
yum list installed | grep docker yum -y remove xxxx
2021/2/24
1. 下载docker-ce的repocurl -o /etc/yum.repos.d/docker-ce.repo2. 安装依赖yum install 安装docker-ceyum install docker-ce4. 启动dockersystemctl start docker
不通
备份旧的配置文件mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/ 这里是改为阿里云的wget -O /etc/yum.repos.d/CentOS-Base.repo -o /etc/yum.repos.d/CentOS-Base.repo makecacheyum 包更新到最新yum update
安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源yum-config-manager --add-repo ‘–skip-broken’ 来跳过无法安装的软件包 或 ‘–nobest’ 来不只使用最佳选择的软件包)
使用下面命令
yum install -y containerd.io、然后就可以顺利的安装Docker 4、 安装docker,出现输入的界面都按 yyum install -y docker-ce
查看docker版本,验证是否验证成功docker -v
Docker 要求 CentOS 系统的内核版本高于 3.10,可以使用uname -r命令来查看自己的系统内核版本
卸载重装
yum remove docker docker-common docker-selinux docker-engine
安装工具包yum-utils
yum install -y yum-utils
选择国内的源,速度会快一些,此处选择阿里云的
yum-config-manager --add-repo docker 版本
yum list docker-ce --showduplicates | sort -rLoading mirror speeds from cached hostfileLoaded plugins: fastestmirrorInstalled Packagesdocker-ce.x86_64 3:20.10.6-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.6-3.el7 @docker-ce-stabledocker-ce.x86_64 3:20.10.5-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.4-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.3-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.2-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.1-3.el7 docker-ce-stable...可以从上面中任选一个版本指定安装,将以下
yum install docker-ce-
也可以通过不指定版本直接安装最新版
yum install docker-ce docker-ce-cli containerd.io
docker version
运行官方提供的验证镜像helloworld
环境介绍
CentOS7.4 基础服务器版本
Docker
Django 此为docker镜像
Nginx 此为docker镜像
MySQL 此为docker镜像
Docker安装配置
下载安装docker
yum -y install docker vim
启动docker,并设置开机启动
systemctl start dockersystemctl enable docker
下载所需镜像
docker pull centosdocker pull nginxdocker pull mysql # 如果下载别的版本MySQL加写成,如:mysql:5.6
centos镜像进行配置Django
为方便以后使用这里分为SSH和Django两步来做
SSH镜像制作
新建ssh_image文件夹并进入
mkdir -p create_docker_image/ssh_imagecd create_docker_image/ssh_image
新建Dockerfile、run.sh两个文件,并附于run.sh执行权限
touch Dockerfile run.shchmod +x run.sh
run.sh写入内容
vim run.sh
#! /bin/bash/usr/sbin/sshd -D
Dockerfile写入内容
vim Dockerfile
# 设置继承镜像FROM centos:latest# 提供一些作者的信息MAINTAINER wallie@910# 开始运行命令RUN yum install -y openssh-serverRUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_keyRUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_keyRUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_keyRUN sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_configRUN sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config RUN echo "123456" | passwd --stdin rootADD run.sh /run.shEXPOSE 22CMD ["/run.sh"]
温馨提示 注意网络安全by:aming 2021/09/28
创建镜像
docker build -t sshd:centos .
aming 温馨提示 注意后面 有个 什么小东东
aming提醒 sshd 配置 要正确 这一步 会报错
Django镜像制作
“mysite”的项目建议自己提前搭建好,直接拷贝过来用,但针对有路径需要做一些调整
新建django_centos文件夹并进入
cd /aming/.../mkdir -p django_centoscd django_centos
新建Dockerfile、run.sh两个文件,并附于run.sh执行权限
touch Dockerfile run.sh chmod +x run.sh
run.sh写入内容
#! /bin/bash# 同步数据库python manage.py makemigrate --noinputpython manage.py migrate --noinput# uwsgi启动djangouwsgi quwan_app/uwsgi.ini/usr/sbin/sshd -Dtail -f /dev/null
Dockerfile写入内容
# 指定操作的镜像FROM sshd:centos# 指定操作的镜像FROM sshd:centos# 创建文件夹RUN mkdir -p /data/ # 项目存放路径 RUN mkdir -p /data/staticRUN mkdir -p /data/media# 拷贝文件, COPY quwan_app /data/# “mysite” 为你自己的django项目可以自行更改COPY run.sh /data/ #这句指令相当与:cd /data//data/安装软件RUN yum install epel-release -yRUN yum -y install gcc python36 net-toolsRUN yum -y install python36-devel mysql-develRUN ln /usr/bin/python3.6 /usr/bin/python -fRUN cp /usr/bin/yum /usr/bin/yum.bakRUN cp /usr/libexec/urlgrabber-ext-down /usr/libexec/urlgrabber-ext-down.bakRUN cp /usr/bin/yum-config-manager /usr/bin/yum-config-manager.bakRUN sed 's/python/python2/g' /usr/bin/yum.bak > /usr/bin/yumRUN sed 's/python/python2/g' /usr/libexec/urlgrabber-ext-down.bak > /usr/libexec/urlgrabber-ext-downRUN sed 's/python/python2/g' /usr/bin/yum-config-manager.bak > /usr/bin/yum-config-managerRUN pip3 install --upgrade pip -i RUN pip3 install django -i RUN pip3 install django_crontab -i RUN pip3 install pymysql -i RUN pip3 install mysqlclient -i RUN pip3 install uwsgi -i RUN pip3 install cryptography -i EXPOSE 8080RUN sh web_run.sh# linux运行会报错修复#RUN cp /usr/local/lib64/python3.6/site-packages/django/db/backends/mysql/operations.py /usr/local/lib64/python3.6/site-packages/django/db/backends/mysql/operations.py.bak#RUN cp /usr/local/lib64/python3.6/site-packages/django/db/backends/mysql/base.py /usr/local/lib64/python3.6/site-packages/django/db/backends/mysql/base.py.bak#RUN sed 's/query.decode/query.encode/g' /usr/local/lib64/python3.6/site-packages/django/db/backends/mysql/operations.py.bak > /usr/local/lib64/python3.6/site-packages/django/db/backends/mysql/operations.py#RUN sed '35,36d' /usr/local/lib64/python3.6/site-packages/django/db/backends/mysql/base.py.bak > /usr/local/lib64/python3.6/site-packages/django/db/backends/mysql/base.py
准备好项目 目录
创建镜像
docker build -t web:django .
Nginx镜像制作
新建django_nginx文件夹并进入
cdmkdir -p create_docker_image/django_nginxcd create_docker_image/django_nginx
Dockerfile写入内容
# 指定操作的镜像FROM docker.io/nginx# 作者MAINTAINER zhoufan# 系统部署RUN mkdir -p /data/static
创建镜像
docker build -t web:nginx .
MySQL镜像制作
touch Dockerfile setup.shchmod +x setup.sh
Dockerfile写入内容
setup.sh写入内容
#!/bin/bashset -e# 启动mysqlservice mysql start# 用来检测问题echo '导入开始'# 输入数据库project.sqlmysql < /root/project.sqlecho `service mysql status`# 用来检测问题echo '开始修改密码'# 导入数据库privileges.sqlmysql < /root/privileges.sqlecho `service mysql status`tail -f /dev/null
privileges.sql数据库
确认数据库文件开关是否有创建库文件和使用库文件的语句就 是 p r o j e c t . s q l , 前 两 句
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `project` default character set utf8 collate utf8_general_ci;USE `project`;DROP TABLE IF EXISTS `abc`;CREATE TABLE `abc` ( `id` int(11) DEFAULT NULL, `name` varchar(25) DEFAULT NULL, `deptid` int(11) DEFAULT NULL, `salary` float DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1;LOCK TABLES `abc` WRITE;UNLOCK TABLES;
privileges.sql数据库
这个库文件是设置本地和远程root帐号和密码的,“test”为密码
use mysql;/*修改root密码*/update user set password=password('test') where user='root' and host='localhost'; /*添加root远程登陆*/grant all privileges on *.* to root@'%' identified by 'test';flush privileges;
三个主程序的镜像已经做完了,可以进行容器运行 容器的启动配置 把启动命令分别写到不同的sh文件中,方便修改
cdmkdir django_runcd django_run
数据库容器启动 配置启动文件start_db.sh
#!/bin/bashdocker run --restart=always -d --name db --privileged=true web:mysql
--restart=always 这是保持容器自动启动--name db 容器的别名改为db --privileged=true 获取mysql容器权限-v 指定映射文件夹,这里指定的是库文件到本地web:mysql 镜像名
运行启动文件
sh start_db.shdocker ps
指定容器为空,请查看最后的命令操作查看错误和删除容器
Django启动
因 为 d j a n g o 与 数 据 库 d b 有 链 接 , 所 以 数 据 库 运 行 成 功 后 , d j a n g o 才 能 运 行 , 不 然 会 报 错
vim start_web.sh
#!/bin/bashdocker run --restart=always -d --name web --link db -p 8000:8000 -v /data/nginx/static/:/data/static web:django
--restart=always 这是保持容器自动启动--name web 容器的别名改为web--link db 指定db的关联,django中连接数据的IP地址可以直接写成“db”-p 8000:8000 映射端口到主机,可不用加-v 挂载web:django 镜像名
运行启动文件
sh start_web.shdocker ps
Nginx启动
因 为 N g i n x 与 d j a n g o 有 链 接 , 所 以 d j a n g o 运 行 成 功 后 , N g i n x 才 能 运 行 , 不 然 会 报 错
vim start_nginx.sh
#!/bin/bashdocker run --restart=always -d --name nginx --privileged=true -p 80:80 -v /data/nginx/conf.d/web.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx -v /data/nginx/statc:/data/static --link web web:nginx
--restart=always 这是保持容器自动启动--name web 容器的别名改为nginx--link db 指定django的关联,nginx中连接django的IP地址可以直接写成“web”-p 80:80 映射端口到主机web:django 镜像名
运行启动文件
sh start_nginx.shdocker ps
docker ps 命令查看容器的运行信息
运行容器,并且可以通过 exec 命令进入 容器。
docker images -a
docker rmi
docker rmi REPOSITORY:TAG
docker system prune --volumes
# 杀死所有正在运行的容器.alias dockerkill='docker kill $(docker ps -a -q)'# 删除所有已经停止的容器.alias dockercleanc='docker rm $(docker ps -a -q)'# 删除所有未打标签的镜像.alias dockercleani='docker rmi $(docker images -q -f dangling=true)'# 删除所有已经停止的容器和未打标签的镜像.alias dockerclean='dockercleanc || true && dockercleani'
使用image创建container并进入交互模式, login shell是/bin/bash
docker run -i -t centos:7 /bin/bash
接着终端就是容器中的centos的了,默认是root用户登录,接下来的操作都在容器中了二、容器中安装passwd,openssl,openssh-server
yum install passwd openssl openssh-server -y
安装完成后启动sshd:# /usr/sbin/sshd -D
这时报以下错误:[root@ b3426410ff43 /]# /usr/sbin/sshdCould not load host key: /etc/ssh/ssh_host_rsa_keyCould not load host key: /etc/ssh/ssh_host_ecdsa_keyCould not load host key: /etc/ssh/ssh_host_ed25519_key执行以下命令解决:[root@b3426410ff43 /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N '' [root@b3426410ff43 /]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''[root@b3426410ff43 /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N '' 然后,修改 /etc/ssh/sshd_config 配置信息:UsePAM yes 改为 UsePAM noUsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no可以用vi改,也可以用下面命令[root@b3426410ff43 /]# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config[root@b3426410ff43 /]# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
修改完后,重新启动sshd[root@b3426410ff43 /]# /usr/sbin/sshd -D 然后修改root密码passwd root 或者直接一句修改echo “123456″ | passwd --stdin root 接着需要把修改后的镜像保存了,首先输入exit退出容器,再使用下面命令查看刚运行过的,docker commit将修改后镜像保存到本地,参数是ID,名字#docker ps -allCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb3426410ff43 centos:7 "/bin/bash" 4 minutes ago Exited (0) 4 seconds ago centos7ssh#docker commit b5926410fe60 myimage/centos7-ssh 下次可以输入刚保存的名字启动修改过安装了ssh服务的镜像了。
1、启动所有容器
docker start $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
2、关闭所有容器
docker stop $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
3、删除所有容器
docker rm $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
4、删除所有镜像(慎用)
docker rmi $(docker images | awk ‘{print $3}’ |tail -n +2)
删除docker中的容器可以使用如下命令:
docker rm 容器id
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~