docker 安装
https://docs.docker.com/engine/installation/linux/docker-ce/centos/#uninstall-docker-ce
http://blog.csdn.net/wh211212/article/details/78662605
- 卸载旧版本
$ sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine
- 设置Docker CE存储库
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 更新yum包的索引
$ sudo yum makecache fast
- 列出docker可用的版本
$ yum list docker-ce --showduplicates | sort -r
- 安装指定版本
//$ sudo yum install <FULLY-QUALIFIED-PACKAGE-NAME>
$ sudo yum install docker-ce-17.09.0.ce
| Note: The version string is the package name plus the version up to the first hyphen. In the example above, the fully qualified package name is docker-ce-17.06.1.ce
- 启动Docker
$ sudo systemctl start docker
- 验证docker
$ sudo docker run hello-world
- 查看docker版本
docker version
- 卸载Docker CE
sudo yum remove docker-ce
sudo rm -rf /var/lib/docker
配置镜像加速器
进入阿里云docker库首页https://dev.aliyun.com/
进入管理中心-->镜像加速器, 按照操作文档配置加速器
docker 镜像命令
- 搜索镜像
//$ docker search <镜像名称>
$ docker search java
- 下载镜像
//$ docker pull <镜像名称>
$ docker pull java
- 列出镜像
$ docker images
- 删除镜像
//$ docker rmi <镜像名称>
$ docker rmi java
$ docker rmi -f java //强制删除
docker 容器命令
- 新建并启动容器
$ docker run
$ docker run java /bin/echo 'Hello world'
$ docker run -d -p 91:80 nginx
// -d 后台运行
// -p 宿主机端口:容器端口
- 列出容器
$ docker ps
- 停止容器
$ docker stop <container id>
- 强制停止容器
$ docker kill <container id>
- 启动停止的容器
$ docker start <container id>
- 重启容器
$ docker restart <container id>
- 删除容器
$ docker rm <container id>
- 删除所有容器
$ docker rm -f $(docker ps -a -q)
- 进入容器
//方法一
$ docker attach <container id>
注:可通过 Ctrl+p 然后 Ctrl+q 组合键退出 attach 终端。
方法二
$ docker exec
$ docker exec -it <container> bash|sh
$ docker exec -it b06fae9dcf21 /bin/bash
// 执行 exit 退出容器
Dockerfile 命令
- Dockerfile由4个部分组成:基础镜像信息,维护者信息,镜像操作指令和容器启动指令,每一行都是一个指令。注释都是以“#”开始的.
# Version 0.1
# 基础镜像
FROM java:8
# 维护者信息
MAINTAINER zhangyongli
# 镜像操作命令
RUN apt-get -yqq update && apt-get install -yqq apache2 && apt-get clean
# 容器启动命令
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
- FROM指令
指定即将制作的镜像,继承哪位镜像。
FROM <image> 或 FROM <image>:<tag>
- MAINTAINER指令
指定维护者信息
MAINTAINER <name>
- RUN指令
执行shell命令的,当解析Dockerfile时,遇到RUN指令,将自动翻译为/bin/sh -c “xxxx”
RUN <command>
- CMD指令
指启动容器时执行的命令,每个Dockerfile只能有一条CMD指令,如果指定了多条CMD,只有最后一条会被执行。
CMD command param1 param2
CMD [“executable”,”param1”,”param2”]
CMD [“param1”,”param2”]
- ENV指令
指定一个环境变量,会被后续的RUN指令使用,并在容器运行时保持。
ENV <key> <value>
- ADD指令
复制指定<src>到容器中的<dest>中,可以是Dockerfile所在目录的一个相对路径,也可以是一个URL,还可以是一个tar文件(自动解压为目录)
ADD <src> <dest>
- COPY指令
复制本地主机<src>到容器中的<dest>中,当使用本地目录为源目录时,推荐使用
COPY <src> <dest>
构建镜像
进入Dockerfile目录,执行
docker build -t 镜像名称:tag标识 .
启动镜像
docker run -d -p 80:80 --name 别名 镜像名称:tag标识
推送镜像
http://blog.51cto.com/wzlinux/2045716
推送镜像(Registry2)
- 安装私有仓库
docker run -d -p 5000:5000 --restart=always --name registry2 registry:2
-
设置Insecure registries
image.png
-
重新打标签
docker tag <container> [registry-host]:[port]/[username]/name:tag
- 推送镜像
docker push [registry-host]:[port]/[username]/name:tag
- 拉取镜像
docker pull [registry-host]:[port]/[username]/name:tag
- 查看私有仓库的镜像
http://[registry-host]:[port]/v2/_catalog
http://[registry-host]:[port]/v2/[container]/tags/list
http://192.168.0.153:5000/v2/_catalog
http://192.168.0.153:5000/v2/mxrcorp/mxr-eureka-server/tags/list
end
网友评论