docker 使用
一、下载centos镜像
1.搜索centos并下载
docker search centos
2. 下载纯净版的centos
docker pull docker.io/centos
3. 下查看下载的镜像
docker images
二、创建容器
1. 创建
docker run -dit --name my_centos 470671670cac
-t 表示在新容器内指定一个伪终端或终端; -i 表示允许我们对容器内的(STDIN)进行交互; -d 表示将容器在后台运行; /bin/bash,这将在容器内启动 bash shell;
2. 切入创建的centos容器并部署环境
docker exec -it c98557a91e51 /bin/bash
注意:容器环境为纯净版本,很多命令需要自己下载
二、Docker仓库
仓库(Repository)是集中存放镜像的地方。https://hub.docker.com/
1 拉取镜像
docker pull registry
docker images
3. 创建目录存储镜像
cd /usr/local/
mkdir docker_registry
4. 启动镜像仓库
这将使用官方的 registry 镜像来启动私有仓库。默认情况下,仓库会被创建在容器的
docker run -d -p 5000:5000 --name=jackspeedregistry --restart=always --privileged=true -v /usr/local/docker_registry:/var/lib/registry docker.io/registry
解释: -p 5000:5000 端口 --name=jackspeedregistry 运行的容器名称 --restart=always 自动重启 --privileged=true centos7中的安全模块selinux把权限禁止了,加上这行是给容器增加执行权限 -v /usr/local/docker_registry:/var/lib/registry 把主机的/usr/local/docker_registry 目录挂载到registry容器的/var/lib/registry目录下,假如有删除容器操作,我们的镜像也不会被删除 docker.io/registry 镜像名称
5. 删除容器
docker container ls -a #获得容器信息
docker container ls -a -q #获得容器id
docker container stop container_id 停止容器
docker container rm container_id 删除容器
docker container stop $(docker container ls -a -q) # 停止所有
docker container rm $(docker container ls -a -q) 删除所有
6. 指定路径启动仓库
docker run -d \
-p 5000:5000 \
-v /opt/data/registry:/var/lib/registry \
registry
三、本地仓库推送
1. 查看此时本地的images和container
docker images
docker ps -a
2. 打包容器为镜像
docker commit -m "this is centos+python" -a 'ccc' c98557a91e51 centos_python3
# -m: 功能和描述 -a:作者 容器_id 镜像名称
3. 创建tag
docker tag new_python 127.0.0.1:5000/new_python
docker push 127.0.0.1:5000/new_python
4. 查看仓库
curl -XGET http://127.0.0.1:5000/v2/_catalog
带账号密码的加上 -u 账号
5. 本地仓库获取 并运行
docker pull 127.0.0.1:5000/new_python