标签:docker 5000 centos 笔记 vim id Docker 第一章 hello
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?
- 通过Image创建
- 在 Image layer之上建立一个container layer
- 类比面向对象:类和实例
- 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: 设置容器启动后默认执行的命令和参数
- 如果docker run 指定了其他命令,CMD命令被忽略
- 如果定义了多个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
标签:docker,5000,centos,笔记,vim,id,Docker,第一章,hello 来源: https://blog.csdn.net/yanmengwing/article/details/118945138
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。