官网安装链接
搜过一些复杂详细的教程,但是没有安装过Docker,直接按照官网很快顺利的安装完成了。
以下按照官网的步骤解释一下
sudo apt-get remove docker docker-engine docker.io containerd runc
卸载docker时,存储在/var/lib/docker/中的图像、容器、卷和网络不会自动删除
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo docker run hello-world
docker pull nginx
docker images
/home/andy/
新建Web目录(放多个Web项目),再新建nginx目录,其中dist
是vue-cli
编译项目生成的文件夹直接拖入的。nginx 和docker
的配置其实就是之前没用Docker部署的nginx中nginx.conf
中的内容(根据自己的文件修改)
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
# Vue configuration
server {
listen 8080; #配置访问时的端口号
server_name 192.168.80.128;
charset utf-8;
client_max_body_size 75M; #影响post文件的最大大小
location / { #配置web静态资源
root /home/andy/Documents/photovoltaic/photovoltaichtml;
index index.html;
add_header 'Access-Control-Allow-Origin' '*';
}
}
# uWSGi configuration
server {
listen 9001; #配置访问时的端口号
server_name 192.168.80.128;
charset utf-8;
client_max_body_size 75M; #影响post文件的最大大小
location /upload { #配置媒体资源文件
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /home/andy/Documents/photovoltaic/photovoltaicsite/upload;
}
location /static { #配置静态资源文件
expires 30d;
autoindex on;
add_header Cache-Control private;
#alias /home/andy/Documents/photovoltaic/photovoltaiccalculation;
alias /home/andy/Documents/photovoltaic/photovoltaicsite/static;
}
location / { #配置uWSGI服务器
include /etc/nginx/uwsgi_params;
uwsgi_pass 192.168.80.128:9090;
uwsgi_read_timeout 2;
}
}
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
# 设置基础镜像
FROM nginx
# 定义作者
MAINTAINER andy
# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY dist/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
自定义构建镜像的时候基于
Dockerfile
来构建。
FROM nginx
命令的意思该镜像是基于 nginx:latest镜像而构建的。
MAINTAINER andy
镜像维护者姓名或邮箱地址。
COPY dist/ /usr/share/nginx/html/
命令的意思是将项目根目录下dist
文件夹下的所有文件复制到镜像中/usr/share/nginx/html/
目录下。
sudo docker build -t pvcal .
-i: 交互式操作。
-t: 终端。
执行成功
root@ubuntu:/home/andy/Web/nginx# sudo docker build -t pvcal .
Sending build context to Docker daemon 3.215MB
Step 1/5 : FROM nginx
---> 88736fe82739
Step 2/5 : MAINTAINER andy
---> Running in 97341a1ac29e
Removing intermediate container 97341a1ac29e
---> 0ccbdef5db5b
Step 3/5 : RUN rm /etc/nginx/conf.d/default.conf
---> Running in 5791b2eea9e3
Removing intermediate container 5791b2eea9e3
---> f550ba3ce560
Step 4/5 : ADD default.conf /etc/nginx/conf.d/
---> d161248c35d1
Step 5/5 : COPY dist/ /usr/share/nginx/html/
---> 6ba8ca4542fa
Successfully built 6ba8ca4542fa
Successfully tagged pvcal:latest
sudo docker run -d -p 【主机端口】:【容器端口】 --name 【容器名】【镜像名/ID】
-p : 端口映射 格式为[主机端口:容器端口]
-d : 后台模式运行
-name : 给容器起一个名字
sudo docker run -d -p 8080:80 --name pvcalVue 6ba8ca4542fa
docker logs 155363e0f9b9(容器ID)
docker ps
docker ps -a
docker rm $(docker ps -aq)
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
docker ps [OPTIONS]
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
所以docker ps -qa
就是列出所有容器的编号
停止一个正在运行的容器:
docker stop 8959823ce1b7 //docker stop 容器ID或容器名
删除容器(配合停止容器删除)
docker rm 8959823ce1b7
重启容器
docker restart 8959823ce1b7 //docker restart 容器ID或容器名:不管容器是否启动,直接重启容器
docker images
docker rmi -f $(docker images -qa)
docker images [OPTIONS]
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
--digests :显示镜像的摘要信息;
-f :显示满足条件的镜像;
--format :指定返回值的模板文件;
--no-trunc :显示完整的镜像信息;
-q :只显示镜像ID
所以docker images -qa
就是列出所有镜像的编号
制作DockerFile教程链接
docker启动命令,docker重启命令,docker关闭命令
启动systemctl start docker
守护进程重启sudo systemctl daemon-reload
重启docker服务systemctl restart docker
重启docker服务sudo service docker restart
关闭dockerservice docker stop
关闭dockersystemctl stop docker