Docker笔记第一章

Docker学习笔记(1):

提示:这里可以添加学习目标
例如:一周掌握 Java 入门知识


第一章:制作一个自己的image

mkdir hello-world
cd hello-word
vi hello.c
i
#include<stdion.h>
int main(){
    print("hello docker \n");
}
gcc -static hello.c -o hello

vim Dockerfile

Dockerfile中所需要的文件

FROM scratch
ADD hello/
CMD ["/hello"]
docker build -t wing/hello-world .

运行自己的image

docker run wing/hello-world

运行c语言,需要安装gcc环境

yum install gcc
yum install glibc-static

2.container:

什么时Container?

  1. 通过Image创建
  2. 在 Image layer之上建立一个container layer
  3. 类比面向对象:类和实例
  4. Image负责app的存储和分发,Container负责运行app
docker ps       //查看正在运行的容器
docker ps -a    //查看正在运行的容器
docker rm -id   //删除容器
docker rm $(docker container ls aq)  //删除所有id

创建并启动容器:

docker run -it --name=mycentos7 centos:7 /bin/bash

创建守护式容器:

docker run -it --name=mycentos2 centos:7

Dockerfile创建镜像

mkdir docker-centos-vim
cd docker-centos-vim
vim Dockerfile
FROM centos:7
RUN yum install -y vim
docker build -t wing/centos-vim

如果在制作镜像的过程中报错:
ipvc forwarding is disabled.Networking will not work.
报错的原因是:没有开启转发,网桥配置完后,需要开启转发,不然容器启动后,就会没有网络,配置

cd etc/sysctl.conf
添加
net.ipv4.ip_forward=1

3.Docker container常用语法

#FROM
表示自己制作的镜像,所使用的基础镜像
eg:
FROM centos:7
#LABEL
表示的是一些标签,例如镜像的版本,制作者
eg:

LABEL maintainer="itcast@qq.com"
LABEL version="1.0"

#RUN
表示构建镜像需要执行的命令
注:为避免无用的分层,尽量所有的命令合并成一行
eg:

RUN yum updata&&yum install -y vim \python-dev

#WORKDIR
类似于cd,没有就创建相应的文件夹或者文件
eg:

WORKDIR /ROOT ADD hello test/  #/root/test/hello

#ENV
设置常量
ENV a 5.6 //a=5.6
#RUN #CMD #ENTRYPOINT
RUN:执行命令并创建新的Image Layer
CMD: 设置容器启动后默认执行的命令和参数

  1. 如果docker run 指定了其他命令,CMD命令被忽略
  2. 如果定义了多个CMD,只有最后一个会执行。

ENTRYPOINT:设置容器启动时运行的命令

将自己的image进行发布

docker login  //然后输入账号和密码
docker push wing/centos-vim

Docker私有仓库的建立

在独立的linux电脑执行

docker pull registry   //拉取私有仓库镜像
启动私有仓库容器
docker run -di --name=registry -p 5000:5000 registry
或者
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker start registry

在自己的机器上

修改daemon.json
vi /etc/docker/daemon.json
{"insecure-registries":["宿主机ip:5000"]}
重启docker
vi /lib/systemd/system/docker.service
添加
EnvironmentFile=-/etc/docker/daemon.json
systemctl restart docker
docker push ip:5000/hello-world
拉取
docker pull ip:5000/hello-word

对于container的操作

docker exec -it id /bin/bash
docker exec -it id python
docker exec -it id ip a
docker stop id
docker inspect id
docker logs id 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值