什么是容器:
就是在隔离的环境运行的一个进程
容器的特点:公用宿主机的内核 运行服务 损耗少 启动快 性能高
容器的虚拟化: 不需要硬件支持 不需要模拟硬件,共用宿主机的内核 启动时间秒机(开机自启动流程)
docker主要有组件:镜像 容器 仓库 网络 存储
启动容器必须要有一个镜像 仓库中只存储镜像
容器------镜像---------仓库
ubuntu
标配的软件安装:curl -o
查看指令文件位置:chroot which xxxx
find -name "12344"
启动镜像:docker run -d -p 80:80 nginx:1.14
run 创建并运行一个容器
-d 放在后台
-p端口映射
-v源地址(宿主机):目标地址(容器)
:docker run -it --name cemtos6 centos:6.9
镜像:包含linux发行版系统文件,nginx软件
容器:基于镜像,启动一个进程 文件
docker container
docker image
挂载素主机
docker run -d -p 80:80 -v /data:/usr/share/nginx/html nginx:latest
docker run -d -p 80:80 -v /data:/usr/share/nginx/html nginx:latest
238 ls /data/
239 cd /data/
240 rz -E
241 ll 242 unzip xiaoniaofeifei.zip
238 ls /data/
239 cd /data/
240 rz -E
241 ll 242 unzip xiaoniaofeifei.zip
设置容器密码:echo ‘123’|password --stdin root
临时退出:ctrl+p 松手后 ctrl+q
重新进入 docker attach uid
手动镜像制作:
1. docker run -it -p 1022:22 centos:6.9
2. yum install openssh-server -y
3. service sshd start 启动
4. echo ‘123’|password --stdin root 设置容器密码
5. docker commit uid(镜像的) centos_ssh:vl 提交为镜像
6. 测试 docker run -d -p 1023:22 centos_ssh:vl /usr/sbin/sshd -D 启动并夯住进程
7. 寻找下载的软件包:yum provides sshd
2. yum install openssh-server -y
3. service sshd start 启动
4. echo ‘123’|password --stdin root 设置容器密码
5. docker commit uid(镜像的) centos_ssh:vl 提交为镜像
6. 测试 docker run -d -p 1023:22 centos_ssh:vl /usr/sbin/sshd -D 启动并夯住进程
7. 寻找下载的软件包:yum provides sshd
手动制作bookManagerSystem的docker:
3 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django
4 cd /opt/
5 wget http://www.qstack.com.cn/bookManageSystem.zip
6 ls
7 unzip bookManageSystem.zip
8 ls
9 cd bookManageSystem
10 ls
11 python manage.py runserver 0.0.0.0:8080
12 ls
13 vim bookManageSystem/settings.py
14 vi bookManageSystem/settings.py
15 yum install vim
16 yum install vi
17 cat /etc/os-release
18 apt-get update
19 echo 'deb http://mirrors.163.com/debian/ stretch main non-free contrib
deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib' >/etc/apt/sources.list
20 apt-get update
21 apt-get install vi -y
22 apt-get install vim -y
23 ls
24 vim bookManageSystem/settings.py
25 python manage.py runserver 0.0.0.0:8080
4 cd /opt/
5 wget http://www.qstack.com.cn/bookManageSystem.zip
6 ls
7 unzip bookManageSystem.zip
8 ls
9 cd bookManageSystem
10 ls
11 python manage.py runserver 0.0.0.0:8080
12 ls
13 vim bookManageSystem/settings.py
14 vi bookManageSystem/settings.py
15 yum install vim
16 yum install vi
17 cat /etc/os-release
18 apt-get update
19 echo 'deb http://mirrors.163.com/debian/ stretch main non-free contrib
deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib' >/etc/apt/sources.list
20 apt-get update
21 apt-get install vi -y
22 apt-get install vim -y
23 ls
24 vim bookManageSystem/settings.py
25 python manage.py runserver 0.0.0.0:8080
装图书管理系统:
a:启动一个基础容器
docker run -it -p 8080:8080 python:3.6 /bin/bash
docker run -it -p 8080:8080 python:3.6 /bin/bash
b:容器部署bms项目
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django
cd /opt/
wget http://www.qstack.com.cn/bookManageSystem.zip
unzip bookManageSystem.zip
cd bookManageSystem
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django
cd /opt/
wget http://www.qstack.com.cn/bookManageSystem.zip
unzip bookManageSystem.zip
cd bookManageSystem
echo 'deb http://mirrors.163.com/debian/ stretch main non-free contrib
deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib' >/etc/apt/sources.list
deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib' >/etc/apt/sources.list
apt-get update
apt-get install vim -y
vim bookManageSystem/settings.py
apt-get install vim -y
vim bookManageSystem/settings.py
python manage.py migrate
python manage.py runserver 0.0.0.0:8080
python manage.py runserver 0.0.0.0:8080
c:把部署好bms项目的容器提交为镜像(id为容器id)查询方式:docker ps -a
docker commit 3e3313968bf7 bms:v1
docker commit 3e3313968bf7 bms:v1
d:测试
docker run -d -p 8080:8080 bms:v1 python /opt/bookManageSystem/manage.py runserver 0.0.0.0:8080
docker run -d -p 8080:8080 bms:v1 python /opt/bookManageSystem/manage.py runserver 0.0.0.0:8080
下载一个 yum list|grep
注意:bash-completion 包 需要重新登录生效
注意:bash-completion 包 需要重新登录生效
删除镜像:docker rmi docker image rm
删除容器:启动容器:doker rm 批量:docker rm -f `docker ps -a -q`
删除容器:启动容器:doker rm 批量:docker rm -f `docker ps -a -q`
docker run -p 80:80 -v /data:/data -v oldboy:/opt
注意:-v可以多次使用 卷(oldboy不存在会自己创建一个)
自动创建镜像dockerfile(建议目录固定,例如:opt/dockerfile):
优势:利于传输
1. FROM 基础镜像的名称
2. RUN 安装步骤(run后面可以接多条命令)
3. CMD 容器运行的初始命令
4. 举例:
1. mkdir centos6.9_sh
2. cd centos6.9_sh
3. vim dockerfile
网络加速:RUN echo '192.168.11.210 mirrors.aliyun.com' >>/etc/hosts &&
curl -o /etc/yum.repos.d/CentOS-Base.repo http://192.168.11.210/repo/Centos-6.repo &&
yum install openssh-server -y
curl -o /etc/yum.repos.d/CentOS-Base.repo http://192.168.11.210/repo/Centos-6.repo &&
yum install openssh-server -y
FROM centos:6.9
RUN yum install openssh-server -y
RUN service sshd start
RUN echo '123'|passwd --stdin root
CMD ["/usr/sbin/sshd","-D"]
4. docker image build -t centos_ssh:v2 .(可以绝对路径 或者是绝对路径) 构建镜像
5.
5. 测试 docker run -d -p 1022:22 centos_ssh:v2
6. 测试 ssh root@10.0.0.58
持久化加在卷中:
docker run -d -P nginx :latest 随机映射端口
重新进入正在运行的容器 docker exec -t 容器uid /bin/bash
还原出厂设置:
1. systemctl stop docker
2. cd /var/lib/docker
3. rm -fr *
4. systemctl start docker
5. 导入镜像,docker load -i docker_centos_ssh
2. cd /var/lib/docker
3. rm -fr *
4. systemctl start docker
5. 导入镜像,docker load -i docker_centos_ssh
镜像属性变该:
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry
仓库上传镜像:
1. 给镜像打标签:
docker tag centos-ssh:v3 10.0.0.0.58:5000/oldboy/centos_ssh:v3
2. 修改配置文件(如果遇到https问题):
vim /etc/docker/daemon.json
{
"insecure-registries":["10.0.0.58:5000"]
}
3. systemctl restart docker 重启docker
4. docker push 10.0.0.58:5000/oldboy/mysql:5.7 提交
上传项目:
593 2019-04-21-16:59:06 python ![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py runserver 0.0.0.0:8080
594 2019-04-21-16:59:48 ls
595 2019-04-21-17:00:08 vim oldboy/local_![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)settings.py
596 2019-04-21-17:05:35 python ![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py migrate
597 2019-04-21-17:06:56 pip install mysqlclient
598 2019-04-21-17:08:16 yum install mysql-devel -y
599 2019-04-21-17:08:31 pip install mysqlclient
600 2019-04-21-17:09:18 yum install python-devel -y
601 2019-04-21-17:09:27 pip install mysqlclient
602 2019-04-21-17:09:55 python ![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py migrate
603 2019-04-21-17:10:46 ls
604 2019-04-21-17:11:33 pip install uwsgi
605 2019-04-21-17:13:03 which uwsgi
606 2019-04-21-17:14:08 vim uwsgi.ini
607 2019-04-21-17:22:03 uwsgi --ini uwsgi.ini
608 2019-04-21-17:22:14 netstat -lntup
609 2019-04-21-17:29:48 history
594 2019-04-21-16:59:48 ls
595 2019-04-21-17:00:08 vim oldboy/local_![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)settings.py
596 2019-04-21-17:05:35 python ![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py migrate
597 2019-04-21-17:06:56 pip install mysqlclient
598 2019-04-21-17:08:16 yum install mysql-devel -y
599 2019-04-21-17:08:31 pip install mysqlclient
600 2019-04-21-17:09:18 yum install python-devel -y
601 2019-04-21-17:09:27 pip install mysqlclient
602 2019-04-21-17:09:55 python ![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py migrate
603 2019-04-21-17:10:46 ls
604 2019-04-21-17:11:33 pip install uwsgi
605 2019-04-21-17:13:03 which uwsgi
606 2019-04-21-17:14:08 vim uwsgi.ini
607 2019-04-21-17:22:03 uwsgi --ini uwsgi.ini
608 2019-04-21-17:22:14 netstat -lntup
609 2019-04-21-17:29:48 history
安装nginx:
yum install wget -y
wget -c https://nginx.org/download/nginx-1.10.3.tar.gz
tar xf nginx-1.10.3.tar.gz
cd nginx-1.10.3/
useradd nginx -s /sbin/nologin -M
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.10.3/ --with-http_stub_status_module --with-http_ssl_module --with-stream
yum install -y pcre-devel
yum install -y openssl-devel
make && make install
echo $?
netstat -lntup
上传解析静态文件:
[root@elk01 nginx-1.10.3]# vim /usr/local/nginx/conf/nginx.conf 修改主配置文件
[root@elk01 nginx-1.10.3]# grep -Ev "#|^$" /usr/local/nginx/conf/nginx.conf.default > /usr/local/nginx/conf/nginx.conf 去除配置文件中的空格 和注释
[root@elk02 html]# vim /usr/local/nginx/conf/conf.d/www.oldboy.com.conf 修改配置文件
/usr/local/nginx/html/xxxx 放静态文件
主配置文件:
```python
worker_processes 1;
worker_processes 1;
events {
worker_connections 1024;
}
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
access_log logs/www.oldboy.com main;
location / {
root html;
index index.html;
}
}
include /usr/local/nginx/conf/conf.d/*.conf;
}
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
access_log logs/www.oldboy.com main;
location / {
root html;
index index.html;
}
}
include /usr/local/nginx/conf/conf.d/*.conf;
}
```
配置文件
server {
listen 80;
server_name www.oldboy.com;
access_log logs/www.oldboy.com_access.log main;
location / {
root html/oldboy;
index index.html index.htm;
}
}
listen 80;
server_name www.oldboy.com;
access_log logs/www.oldboy.com_access.log main;
location / {
root html/oldboy;
index index.html index.htm;
}
}
/usr/local/nginx/sbin/nginx -s reload 重启