安装环境linux
centos7.4docker
开始安装json
下载docker官方yum源centos
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
bash
开始安装:yum install -y docker-ce
服务器
docker镜像下载curl
下载命令svn
docker pull xxx
xxx表示镜像名称,以下载centos镜像就是ocker pull centos
url
若是下载速度很慢能够配置docker下载加速器centos7
vi /etc/docker/daemon.json
加入如下内容:
{
"registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"]
}
docker经常使用命令
1.查看本地的镜像:docker images
2.搜索镜像,其中xxx是关键词:docker search xxx
3.给镜像打标签:docker tag centos test123:222333
4.镜像启动为容器,-i表示让容器的标准输入打开,-t表示分配一个伪终端,-d表示后台启动,要把-i -t -d 放到镜像名字前面:docker run -itd centos
5.查看docker启动中的容器,加上-a选项后能够查看全部容器,包括未运行的:docker ps
6.用来删除指定镜像,其中后面的参数能够是tag,若是是tag时,其实是删除该tag。当后面的参数为镜像ID时,则会完全删除整个镜像,全部标签也会一同删除:docker rmi xxx
进入容器
docker exec -it xxxxx bash
是进入容器的命令,其中xxxxx为容器id,这个id能够用docker ps查看,最后面的bash为进入容器后咱们要执行的命令
在容器内安装net-tools
在容器内执行:yum install -y net-tools
提交新镜像
docker commit -m "change somth" -a "somebody info" container_id new_image_name
参数说明:container_id经过docker ps -a获取,后面的new_image_name为新镜像名字
示例:
docker commit -m "install net-tools" -a "wxy" 82d0ec485063 centos_net-tolls
这个命令有点像svn的提交,-m 加一些改动信息,-a 指定做者相关信息,82d0ec这一串为容器id,再后面为新镜像的名字
提交完成后,使用docker image查看:
下载一个模板
wget http://download.openvz.org/template/precreated/centos-6-x86-minimal.tar.gz
导入该镜像
cat centos-6-x86-minimal.tar.gz |docker import - centos6
以现有的镜像导出一个文件
docker save -o centos_net-tolls.tar centos_net-tolls
把原有的进行删除,把导出的镜像导入进去
docker images
获取镜像id
docker rmi acaf23cc3076
重启导入镜像
docker load --input centos_net-tolls.tar
或者docker load < centos_net-tolls.tar
也能够
启动容器
建立一个容器,可是不启动: docker create -it centos6 /bin/bash
启动容器:docker start 30034995f99a
启动完成后能够docker ps查看
可使用docker run来进行启动,它至关于先create后再start容器
docker run -it centos6 /bin/bash
docker -d
可让容器在后台运行,如:
docker run -itd centos6 /bin/bash
启动容器时给容器自定义名称
docker run -itd --name "centos_1" centos6 /bin/bash
容器退出后直接删除
可让docker容器运行一个命令后退出并删除容器,如让一个容器运行sleep 30,等待30秒后容器会中止并删除。
docker run --rm -itd centos /bin/bash -c "sleep 30"
docker容器log查看
启动容器,并运行一个命令
docker run -itd 80d356edba18 bash -c "echo 123"
使用docker logs查看
docker logs 3d995b4d
临时docker打开虚拟终端
使用docker exec 能够打开容器的临时终端,exit后容器仍是正常运行
docker exec -it f3381b9c3b2e /bin/bash
docker attach container_id 这种方式也可打开终端,可是exit后容器就中断了,因此这种方式通常不用
删除容器
docker rm container_id 能够删除容器,container_id是ps的时候查看到的,这样就能够把container删除,若是是运行的容器,能够加-f
docker rm -f f3381b9c3b2e
导出容器
docker export container_id > file.tar 这样能够导入容器,生成一个文件。能够迁移到别的机器进行导入
docker export 831cf59980c4 > wxy_test.tar
导入容器
cat file.tar |docker import - wxy_test 这样会生成新的镜像
cat centos-6-x86-minimal.tar.gz |docker import - wxy_test
下载registry镜像
registy为docker官方提供的一个镜像,咱们能够用它来建立本地的docker私有仓库。
docker pull registry
启动registry镜像
docker run -d -p 5000:5000 registry
启动registry镜像,-p的意思是把容器端口映射到宿主机上,左边为宿主机端口,右边为容器监听端口
访问registry
curl 127.0.0.1:5000/v2/_catalog
把镜像上传到私有仓库
首先给私有仓库tag一下,tag必需要有私有仓库的ip:port
docker tag wxy_test 172.18.11.153:5000/centos
修改配置文件
vi /etc/docker/daemon.json
改成如下内容:
{ "insecure-registries":["172.18.11.153:5000"] }
完成后重启docker
systemctl restart docker
`
启动容器
docker start 64584c4300f1
进行push
docker push 172.18.11.153:5000/centos
查看推送的镜像
curl 127.0.0.1:5000/v2/_catalog
在其余机器上下载刚上传的镜像
在其它安装docker的服务器上修改配置文件
/etc/docker/daemon.json
修改如下内容:
{ "insecure-registries":["47.106.84.56:5000"] }
ip为以前上传镜像的registry的服务器ip,这里跟以前的ip不同是由于用了云服务器。
修改完成后重启docker,而后进行pull
docker pull 47.106.84.56:5000/centos