docker

首页docker
25
Sep
0

CENTOS7.2下DOCKER入门二 镜像制作

查看依赖某镜像的镜像

docker images -f since=mongo:3.2

查询包含某名字的镜像

docker images ubuntu

删除虚悬镜像

docker rmi $(docker images -q -f dangling=true)

启动一个NGINX服务器

docker run --name webserver -d -p 80:80 nginx

进入NGINX服务器命令行

docker exec -it webserver bash

替换文件内容

echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

查看容器的改变内容

docker diff webserver

把镜像的修改保存为新镜像

docker commit --author "xiaocaotongxue" --message "modify index.html" webserver nginx:v2

查看镜像的制作历史

docker history nginx:v2

运行刚创建的镜像

docker run --name web2 -d -p 81:80 nginx:v2

用DOCKER FILE方式创建新镜像

$ mkdir mynginx
$ cd mynginx
$ touch Dockerfile

FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

//FROM scratch   如果是这个则代表不从任何镜像开始创建
//RUN ["可执行文件", "参数1", "参数2"]
//每一个RUN 代表创建一层 所以多命令的正确姿势是 使用&& 连接 全放在一个RUN里 因为有层数限制127
// \为换行  #为注释行

构建镜像

docker build -t nginx:v3 .    //后面的.表示当前目录  也是上下文路径 指把这个目录的文件打包上传到服务器构建DOCKER镜像
//.dockerignore 文件可以像.gitignore一样过滤需要上传的文件
//COPY ./package.json /app/    复制上下文件目录的package.json文件  可使用通配符 * ?
//ADD 和COPY一样 但是源可以是URL   而且自动解压 有时并不好用  还有很多缺点 不推荐用

docker build https://github.com/twang2218/gitlab-ce-zh.git#:8.14  //从GIT上构建

进入镜像的BASE

docker run -it ubuntu      //默认进入BASE

执行命令的方式 直接执行 而不是像虚拟机启动服务一样

shell 格式: CMD <命令>
exec 格式: CMD ["可执行文件", "参数1", "参数2"...]
CMD是和RUN FROM 同一级的 执行镜像时 就会执行  如:CMD [ "curl", "-s", "http://ip.cn" ]


CMD service nginx start               //错误
CMD ["nginx", "-g", "daemon off;"]    //正确

启动镜像时 顺便执行命令

docker run myImage curl -s http://ip.cn -i

ENTRYPOINT [ "curl", "-s", "http://ip.cn" ]  //DOCKER FILE使用ENTRYPOINT  那么就可以直接把上面这条命令变为 docker run myImage -i
18
Sep
0

CENTOS7.2下DOCKER入门一

御载旧版DOCKER

sudo yum remove docker docker-common docker-selinux docker-engine

官方源安装依赖包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加国内源

sudo yum-config-manager  --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

添加官方源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装最近版本的DOCKER CE

sudo yum-config-manager --enable docker-ce-edge

更新YUM源缓存

sudo yum makecache fast

安装docker ce

sudo yum install docker-ce

自动化脚本安装方式 用到上面的ali源

curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun

启动

sudo systemctl enable docker
sudo systemctl start docker

创建DOCKER用户组

sudo groupadd docker

将当前用户加入组

sudo usermod -aG docker $USER

如果看到以下警告信息 启用则可

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sudo sysctl -p               --重新加载

DOCKER从入门到实战的GITHUBBOOK地址

https://www.gitbook.com/book/yeasy/docker_practice/details

下载镜像 不带地址 默认从官方下载

docker pull ubuntu:14.04

启动它
-it :这是两个参数,一个是 -i :交互式操作,一个是 -t 终端
--rm :这个参数是说容器退出后随之将其删除
bash :放在镜像名后的是命令

docker run -it --rm ubuntu:14.04 bash

执行命令

cat /etc/os-release    --查看UNUNTU的系统版本

退出容器

exit