[整理记录备忘] Docker相关

docker安装

  • linux上安装Docker(非常简单的安装方法)

https://blog.csdn.net/qq_36892341/article/details/73918672

修改docker镜像源

  • 修改或新增 /etc/docker/daemon.json

# vi /etc/docker/daemon.json

{

“registry-mirrors”: [“http://hub-mirror.c.163.com”]

}

systemctl restart docker.service

docker 命令

docker ps -n 5 查看容器

docker restart 容器ID ;重启重启里的实例

  • 可以使用"docker rm 容器id"来删除一个终止状态的容器;若要删除一个运行中的容器,需要加-f参数。
  • 1.停止所有的container,这样才能够删除其中的images:

docker stop $(docker ps -a -q)

  • 如果想要删除所有container的话再加一个指令:

docker rm $(docker ps -a -q)

  • 2.查看当前有些什么images

docker images

  • 3.删除images,通过image的id来指定删除谁

docker rmi

  • 想要删除untagged images,也就是那些id为 的image的话可以用

docker rmi $(docker images | grep “^ ” | awk “{print $3}”)

  • 要删除全部image的话

docker rmi $(docker images -q)

  • 创建容器

docker build -t npapi .

  • 运行docker对应的容器 映射端口(然而感觉不好使,需要进行docker内部系统的额外映射,或者是Linux中的映射后,外部才会能访问到)

docker run npapi -p 6888:6888

  • 上边的东西通过Dockerfile解决,如下:

ENV ASPNETCORE_URLS=http://+:6888

  • 运行busybox docker容器(busybox 可以调用一些类似于ping telnet 等命令)

docker pull busybox
docker run -it busybox

  • 查看docker镜像信息

docker inspect 【imagename】

  • !解决时区不统一,连接Oracle报错问题:
  • Dockerfile文件中填写如下两句话;

#定义时区参数
ENV TZ=Asia/Shanghai
#设置时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo ‘$TZ’ > /etc/timezone

  • 完整配置如下:

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
#定义时区参数
ENV TZ=Asia/Shanghai
#设置时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo ‘$TZ’ > /etc/timezone
WORKDIR /app
EXPOSE 6888
COPY . .
ENTRYPOINT [“dotnet”, “NP.API.dll”]

  • 查看docker容器IP地址命令(前提是:docker得是运行状态)

sudo docker inspect -f=’{{.NetworkSettings.IPAddress}}’ $(sudo docker ps -a -q)

进入容器命令

  • 使用docker attach进入Docker容器,Docker提供了attach命令来进入Docker容器。
  • 接下来我们创建一个守护态的Docker容器,然后使用docker attach命令进入该容器。

$ sudo docker run -itd ubuntu:14.04 /bin/bash

  • 然后我们使用docker ps查看到该容器信息,接下来就使用docker attach进入该容器

$ sudo docker attach 44fc0f0582d9
  
可以看到我们已经进入到该容器中了。

  • 但在,使用该命令有一个问题。当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
  • 因为这个原因,所以docker attach命令不太适合于生产环境,平时自己开发应用时可以使用该命令。

解决在docker中运行 asp.net core项目的时候,出现的gdiplus问题

RUN apt-get update
RUN apt-get install libfontconfig1 -y
RUN apt-get install libgdiplus -y && ln -s libgdiplus.so gdiplus.dll

Docker运行实例的时候出现WARNING:IPv4 forwarding is disabled. Networking will not work. 的解决办法

#需要做如下配置

解决办法:

vi /etc/sysctl.conf

net.ipv4.ip_forward=1 #添加这段代码

#重启network服务

systemctl restart network && systemctl restart docker

#查看是否修改成功 (备注:返回1,就是成功)

[root@localhost ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

猜你喜欢

转载自www.cnblogs.com/wgq4812/p/10790676.html