Docker 后续笔记

xiaoxiao2021-02-28  79

该笔记用于记录学习Docker 中碰到问题和摸索解决的过程方法。

Docker 教程,自学  http://www.runoob.com/docker/docker-tutorial.html

常用的一些命令 

启动Docker后台服务:service docker start

进入容器交互 

docker run -i -t ubuntu:15.10 /bin/bash

t 在新容易内置指定一个伪终端或终端

i允许你对容易内的标准进行交互

通过CTRL+D退出

停止容器命令: docker stop name/id

帮助命令 :docker stats --help

查看网络端口映射方式:docker port id

查看WEB应用程序日志:docker logs -f id

查看WEB 应用程序容器内部进程:docker top name

查看docker底层信息:docker inspect name

重启容器:docker start name

先停止容器然后移除应用:docker rm name    ###name 指容易名称,ID指容器编号可以通过docker ps 查看

docker run -t -i ubuntu:15.10 /bin/bash ##通过:后面的标签区分不同版本镜像

构建镜像 docker build:

以下都是在同一个目录下运行

cat Dockerfile

首先创建 Dockerfile  文件 在当前目录以 . 表示

docker build -t runoob/centos:6.7 . ##注意最后的 .

参数说明:

-t :指定要创建的目标镜像名

. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

安装 基本使用方法 参考 菜鸟教程。

1.Docker配置以及目录映射问题

使用 docker search nginx  

        docker pull nginx

runoob@runoob:~/nginx$ docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx 45c89fab0bf9ad643bc7ab571f3ccd65379b844498f54a7c8a4e7ca1dc3a2c1e runoob@runoob:~/nginx$

命令说明:

-p 80:80:将容器的80端口映射到主机的80端口

--name mynginx:将容器命名为mynginx

-v $PWD/www:/www:将主机中当前目录下的www挂载到容器的/www

-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf

-v $PWD/logs:/wwwlogs:将主机中当前目录下的logs挂载到容器的/wwwlogs

查看容器运行状况

docker ps

没问题。

2.Dockerfile 使用方法

创建Dockerfile

首先,创建目录nginx,用于存放后面的相关东西。

runoob@runoob:~$ mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

www目录将映射为nginx容器配置的虚拟目录

logs目录将映射为nginx容器的日志目录

conf目录里的配置文件将映射为nginx容器的配置文件

进入创建的nginx目录,创建Dockerfile

FROM debian:jessie MAINTAINER NGINX Docker Maintainers "docker-maint@nginx.com" ENV NGINX_VERSION 1.10.1-1~jessie RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 \ && echo "deb http://nginx.org/packages/debian/ jessie nginx" >> /etc/apt/sources.list \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ca-certificates \ nginx=${NGINX_VERSION} \ nginx-module-xslt \ nginx-module-geoip \ nginx-module-image-filter \ nginx-module-perl \ nginx-module-njs \ gettext-base \ && rm -rf /var/lib/apt/lists/* # forward request and error logs to docker log collector RUN ln -sf /dev/stdout /var/log/nginx/access.log \ && ln -sf /dev/stderr /var/log/nginx/error.log EXPOSE 80 443 CMD ["nginx", "-g", "daemon off;"]

通过Dockerfile创建一个镜像,替换成你自己的名字

docker build -t nginx .

创建完成后,我们可以在本地的镜像列表里查找到刚刚创建的镜像

runoob@runoob:~/nginx$ docker images nginx REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 555bbd91e13c 3 days ago 182.8 MB 3.docker 上传发布。快速部署 https://blog.csdn.net/jacksonary/article/details/78961612

更新提交镜像通过 

docker run -t -i ubuntu:15.10 /bin/bash

进入镜像  apt-get update 更新,然后exit退出容器。

使用commit 提交镜像副本

docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8

各个参数说明:

-m:提交的描述信息

-a:指定镜像作者

e218edb10161:容器ID

runoob/ubuntu:v2:指定要创建的目标镜像名

我们可以使用 docker images 命令来查看我们的新镜像 runoob/ubuntu:v2

转载请注明原文地址: https://www.6miu.com/read-2614098.html

最新回复(0)