Net Core Docker 容器部署,修改,保存

运行镜像

[root@localhost opt]# docker run -itd -p 80:80 microsoft/dotnet:latest

查看运行的docker

[root@localhost opt]# docker ps
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS              PORTS                NAMES
f3aff5ca8aa3        microsoft/dotnet:latest   "bash"              21 seconds ago      Up 17 seconds       0.0.0.0:80->80/tcp   upbeat_kapitsa

拷贝代码到容器的/opt目录,然后进入之容品

[root@localhost dockernet]# docker cp app f3aff5ca8aa3:/opt
[root@localhost dockernet]# 
[root@localhost dockernet]# 
[root@localhost dockernet]# docker exec -it f3aff5ca8aa3 /bin/bash
root@f3aff5ca8aa3:/# cd /opt
root@f3aff5ca8aa3:/opt# ls
app

到程序目录后运行

root@f3aff5ca8aa3:/opt/app# dotnet PhoneCard.dll

成功运行
在这里插入图片描述
把修改的容器保存为镜像

[root@localhost dockernet]# docker commit f3aff5ca8aa3 mynetweb
sha256:ebd813a36273ccd6dab11ffe4eab9ff3da01b4848c97b3ac9eb7ee170b001a72
[root@localhost dockernet]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mynetweb            latest              ebd813a36273        7 seconds ago       1.76GB

进入容器启动,可以看到两个正在运行的容器

[root@localhost dockernet]# docker run -itd -p 8080:80 mynetweb 
[root@localhost dockernet]# docker ps
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS              PORTS                  NAMES
685a6c44c03b        mynetweb                  "bash"              7 seconds ago       Up 5 seconds        0.0.0.0:8080->80/tcp   elated_kilby
f3aff5ca8aa3        microsoft/dotnet:latest   "bash"              22 minutes ago      Up 22 minutes       0.0.0.0:80->80/tcp     upbeat_kapitsa
[root@localhost dockernet]# docker exec -it 685a6c44c03b /bin/bash
root@685a6c44c03b:/# cd /opt
root@685a6c44c03b:/opt# ls
app
root@685a6c44c03b:/opt# cd app

启动后成功运行

root@685a6c44c03b:/opt/app# dotnet PhoneCard.dll

在这里插入图片描述

保存容器为文件

[root@localhost dockernet]# docker export 685a6c44c03b > docker1.tar                      
[root@localhost dockernet]# ls
app  docker1.tar  Dockerfile

导入容器

docker import - docker1 < docker1.tar 

docker修改容器中的文件

这里提供两种方法:

1.使用命令 docker exec -it 容器id /bin/bash 进入容器中,安装vim编辑器。

1).同步源索引:apt-get update
2).安装vimapt-get install vim
3).输入vim 文件名 即可编辑文件了

注:直接输入命令apt-get install vim 会报错E: Unable to locate package vim,必须等第一个命令完成后再安装vim

2.使用docker cp

1).根据容器id,使用docker cp把这个文件复制出来:docker cp 容器id:/data/spider.py /home/runnian/

2).修改完成后把文件复制回容器中原来的位置:docker cp /home/runnian/spider.py 容器id:/data/

以上两种方法都可以修改docker文件中的文件,区别是第一种方法只能在容器运行的时候使用,第二种方法不管容器是否在运行都可以使用,修改好后别忘了docker restart 容器id 重启容器。

不过以上两种方法都不太建议使用,当要修改文件时,最好还是在原文件中去修改,修改好后重新更新一下镜像再创建容器去运行。


修改已有docker容器中的内容

一、docker ps 列出容器

在这里插入图片描述

二、docker cp 拷贝文件至容器

在这里插入图片描述
注:docker中宿主机与容器(container)互相拷贝传递文件的方法

1、从容器拷贝文件到宿主机

docker cp mycontainer:/opt/testnew/file.txt /opt/test/

2、从宿主机拷贝文件到容器

docker cp /opt/test/file.txt mycontainer:/opt/testnew/

需要注意的是,不管容器有没有启动,拷贝命令都会生效

当结束后,我们使用 exit 来退出,现在我们的容器已经被我们改变了,使用 docker commit 命令来提交更新后的副本。

三、提交修改

$ sudo docker commit -m "描述内容" -a "author name" 32555789dd00 aipaper/devinz83:v2

其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;-a 可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。

四、使用 docker images 来查看新创建的镜像。

docker images

五、修改yml文件

使用新的image
在这里插入图片描述

六、重新部署,即运用新修改后的镜像部署了docker应用。

docker stack deploy --compose-file=/opt/docker/yml/docker-compose-resty-redis.yml resty_redis

附:可添加redis集群密码的lua脚本,传送门。
https://github.com/steve0511/resty-redis-cluster

Guess you like

Origin blog.csdn.net/WuLex/article/details/113728609