Web端Docker镜像的生成以及Docker的基本操作命令
1.打包vue前端项目生成dist文件夹上传至服务器
2.修改Dockerfile文件
# 基于nginx:1.20镜像
FROM nginx:1.20
# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY dist/ /usr/share/nginx/html/dist/
# 用本地的 nginx.conf 配置来替换nginx镜像里的默认配置
COPY nginx.conf /etc/nginx/nginx.conf
# 将证书文件内容复制到/usr/local/nginx/文件夹下
COPY cert/ /usr/local/nginx/cert/
3.修改nginx.conf文件
worker_processes 1;
error_log "/var/log/nginx/error_log" notice;
events {
worker_connections 1024;
}
http {
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_cookie" "$http_user_agent" '
'$request_time $remote_addr $server_addr $upstream_addr $host '
'"$http_x_forwarded_for" $msec';
access_log "/var/log/nginx/access_log" main;
keepalive_timeout 0;
error_page 404 http://localhost/404; #错误页
server {
listen 8080;
server_name xxx.baidu-int.com xxx.baidu.com;
add_header Cache-Control no-cache;
location / {
root /usr/share/nginx/html/dist/;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include servers/*;
}
4.打包(创建image文件)
docker image build -t hello_docker .
# 或者
docker image build -t hello_docker:0.0.1 .
上面代码中,-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。
如果不指定,默认的标签就是latest。
最后的那个点表示 Dockerfile 文件所在的路径,上例是当前路径,所以是一个点。
如果运行成功,就可以看到新生成的 image 文件demo了。
docker image ls
5.生成容器
如果防火墙开着,需要
或者
docker container run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash
上面命令的各个参数含义如下:
-p参数:容器的 3000 端口映射到本机的 8000 端口。
-it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
/bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。
如果一切正常,运行上面的命令以后,界面如下图。
image.png
在本机的另一个终端窗口,查出容器的 ID
$ docker container ls
停止指定的容器运行
$ docker container kill [containerID]
容器停止运行之后,并不会消失,用下面的命令删除容器文件。
查出容器的 ID
$ docker container ls --all
删除指定的容器文件
$ docker container rm [containerID]
也可以使用docker container run命令的--rm参数,在容器终止运行后自动删除容器文件。
$ docker container run --rm -p 8000:3000 -it koa-demo /bin/bash
$ docker container exec -it [containerID] /bin/bash
docker container exec命令用于进入一个正在运行的 docker 容器。如果docker run命令运行容器的时候,没有使用-it参数,就要用这个命令进入容器。一旦进入了容器,就可以在容器的 Shell 执行命令了。
$ docker container logs [containerID]
docker container logs命令用来查看 docker 容器的输出,即容器里面 Shell 的标准输出
$ docker container cp [containID]:[/path/to/file] .
docker container cp命令用于从正在运行的 Docker 容器里面,将文件拷贝到本机。下面是拷贝到当前目录的写法。
--privileged=true #容器内部拥有root权限
--restart always #自启动
--net=host #网络与容器内部的端口号保持一致,不需要映射端口号了
6.使用https://你的IP地址即可访问运行
Docker 常用操作命令
1.检索image
docker search image-name
2.下载image
docker pull image-name
docker pull java:8
3.列出镜像列表
docker images
4.删除一个或者多个镜像
docker rmi image-name
5.显示一个镜像的历史
docker history image-name
6.打包
docker image build -t [username]/[repository]:[tag] .
>上面代码中,-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。
如果不指定,默认的标签就是latest。
最后的那个点表示 Dockerfile 文件所在的路径,上例是当前路径,所以是一个点。
如果运行成功,就可以看到新生成的 image 文件demo了。
7. 发布 image 文件
容器运行成功后,就确认了 image 文件的有效性。这时,我们就可以考虑把 image 文件分享到网上,让其他人使用。
首先,去 hub.docker.com 或 cloud.docker.com 注册一个账户。然后,用下面的命令登录。
$ docker login
接着,为本地的 image 标注用户名和版本。
$ docker image tag [imageName] [username]/[repository]:[tag]
实例
$ docker image tag koa-demos:0.0.1 ruanyf/koa-demos:0.0.1
也可以不标注用户名,重新构建一下 image 文件。
$ docker image build -t [username]/[repository]:[tag] .
最后,发布 image 文件。
$ docker image push [username]/[repository]:[tag]