(docker)入门实践、环境部署、基本操作指令、镜像库、数据卷
来源:互联网 发布:擎洲广达计价软件 编辑:程序博客网 时间:2024/06/04 19:11
简述
介于上篇k8s的博文,我整理了一下之前学习docker的笔记。
docker环境搭建
介于上篇k8s的博文,我整理了一下之前学习docker的笔记。
docker环境搭建
1.获取最新版的Docker安装包
$ wget -qO- https://get.docker.com/ | sh
2.直接使用docker
无须加 sudo
# Add the docker group if it doesn't already exist. $ sudo groupadd docker # Add the connected user "${USER}" to the docker group. # Change the user name to match your preferred user. # You may have to logout and log back in again for # this to take effect. $ sudo gpasswd -a ${USER} docker # Restart the docker daemon. $ sudo service docker restart #############单条指令############## sudo usermod -aG docker $USER # 把当前用户加入docker组
3 . 从 17.04
以后,可以用下面的命令安装。
$ export CHANNEL=stable$ curl -fsSL https://get.docker.com/ | sh -s -- --mirror Aliyun
镜像基本操作指令
1.搜索镜像
$ sudo docker search ubuntu
2.获取镜像
$ sudo docker pull ubuntu
3.查看镜像信息
$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEubuntu latest ccc7a11d65b1 3 weeks ago 120MBswarm latest 7ecf8baf8eae 8 weeks ago 15.8MB
4.查看镜像的详细信息
$ sudo docker inspect 7ecf8baf8eae #或$ sudo docker inspect ubuntu
5.删除镜像
$ sudo docker rmi swarmError response from daemon: conflict: unable to remove repository reference "swarm" (must force) - container c445ef19d3e7 is using its referenced image 7ecf8baf8eae
因此,删除镜像之前得确保容器已删除
6.删除容器
$ sudo docker rm 7ecf8baf8eae #删除指定容器$ sudo docker rm $(docker ps -a -q) #删除所有已生成容器
7.复制镜像
$ sudo docker tag ubuntu:latest hzy/test:latesthzy@hadoop:~$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhzy/test latest ccc7a11d65b1 3 weeks ago 120MBubuntu latest ccc7a11d65b1 3 weeks ago 120MBswarm latest 7ecf8baf8eae 8 weeks ago 15.8MB
创建镜像
1.创建一个新镜像,进行操作
$ docker run -it ubuntu /bin/bash --name biemingroot@3138d574074e:/#
2.使用 docker commit
来提交一个新的镜像
$ sudo docker commit -m "added a new file" -a "huangzy" 3138d574074e hzy/test3138d574074esha256:f8b1d41ff97589f7c207577b391b1d5074b197a1ec3196a8907269ec6e00dcae# -a, --author="" 作者信息# -m, --message="" 提交消息# -p, --pause=ture 提交时暂停容器运行
存出和载入镜像
1.存出镜像
$ sudo docker save -o ubuntu.tar ubuntu:latest
2.载入镜像
$ sudo docker load --input ubuntu.tar Loaded image: ubuntu:latest#或$ sudo docker load < ubuntu.tar
容器
1.创建容器
$ sudo docker run -it ubuntu:latest /bin/bashroot@939831baa91d:/# # -t 分配一个伪终端绑定到容器的标准输入上# -i 让容器的标准输入保持打开# -d 让Docker容器在后台以守护态(Daemonized)形式运行
2.终止容器
$ sudo docker stop 939831b
3.查看容器状态
$ sudo docker ps #或$ sudo docker ps -a -q # 可查看到终止状态的容器
4.使用 docker start
命令来重新启动处于终止状态的容器
$ sudo docker start 939831b#或$ sudo docker restart 939831b
5.删除容器
$ sudo docker rm 3138d574074eError response from daemon: You cannot remove a running container 3138d574074e5a45a543760c2ecb3935b0173d89940c05fa3cd969d1112338ff. Stop the container before attempting removal or force remove #应该先停止容器服务,再进行删除。$ sudo docker stop 3138d574074e
导入和导出容器
1.导出容器(无论该容器是否处于运行状态)
$ sudo docker export 3138d > test_for_run.tar
2.导入容器(导出的文件可以导入,成为镜像)
$ cat test_for_run.tar | sudo docker import - test/ubuntu:v1sha256:b974a00be6dd0ac5f794c3ec5ef6b1812cdc535390b67950cf220aa1e557c759
仓库(Repository)
仓库:是集中存放镜像的地方。
注册服务器(Registry):是存放仓库的具体服务器。
1.终端登录Docker Hub
$ sudo docker login [sudo] password for hzy: Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.Username: s152118130110Password: Login Succeeded
2.将本地镜像推送到Docker Hub
$ sudo docker push swarm:latest
创建和使用私有仓库
1.默认情况下,会将仓库存放于容器的 /tmp/registry 目录下,如果容器被删除,则数据也会丢失,所以我们可以通过 -v 参数来将镜像文件存放在本地的指定路径
$ sudo docker run –d –p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry# -i: 保持sdtin开放状态# -d: 使容器以守护进程方式后台运行,并打印容器id# -t: 分配一个tty(虚拟终端设备)# -v: 绑定挂载一个容器内的路径到宿主机路径# -p: 映射一个容器的端口到宿主机端口# -restart: 当容器退出时的重启策略# -name: 给容器命名一个名称
打开chrome输入
http://127.0.0.1:80/v2
2.标记
$ sudo docker tag swarm 192.168.18.19:5000/swarm
3.上传
$ sudo docker push 192.168.18.19:5000/swarmThe push refers to a repository [192.168.18.19:5000/swarm]Get https://192.168.18.19:5000/v2/: http: server gave HTTP response to HTTPS client#由于客户端采用https,docker registry未采用https服务所致。一种处理方式是把客户对地址“192.168.1.100:5000”请求改为http#在 "etc/docker" 目录下,创建daemon.json文件,并在文件写入:{"insecure-registries":["ip地址:5000"]}#重新启动docker$ sudo service docker restart#重新上传镜像即可$ sudo docker push 192.168.18.19:5000/swarm# 查看上传是否成功$ curl http://192.168.18.19:5000/v2/_catalog{"repositories":["swarm"]}
4.下载镜像
$ sudo docker pull 192.168.18.19:5000/swarm
客户机访问Registry
1.对于需要访问Registry仓库的客户机,需要修改文件。
# ubuntu 在以下文件添加 {"insecure-registries":["192.168.18.19:5000]}$ vi /etc/docker/daemon.json # centos 在以下文件添加 OPTIONS=‘--SELINUXENABLED--INSECUREREGISTRY192.168.18.19:5000’$ vi /etc/sysconfig/docker
数据卷
1 . 使用 -v
标记可以指定挂载一个本地的目录到容器中
$ docker run -d -P --name web -v /src/webapp:/opt/webapp:ro training/webapp python app.py# 地目录的路径必须是绝对路径,如果目录不存在 Docker 会自动为你创建它。
2 . 使用 -v
标记也可以从主机挂载单个文件到容器中
$ docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash# 这样可以记录在容器输入过的命令
阅读全文
0 0
- (docker)入门实践、环境部署、基本操作指令、镜像库、数据卷
- Docker入门实践(三) 基本操作
- Centos7 Docker基本特性入门实践-2
- Centos7 Docker基本特性入门实践-3
- docker 数据卷
- Docker数据卷详解
- docker数据卷
- docker总结--数据卷
- docker--数据卷
- Docker 从入门到精通(一)基本操作
- Docker 从入门到精通(一)基本操作
- Docker 从入门到精通(一)基本操作
- 实例解析Docker数据卷+数据卷容器+flocker数据共享+DockerHub操作
- Docker 使用方法总结之:容器的数据卷操作
- Docker 快速上手系列(4): 数据卷,数据卷容器的概念及相关操作
- Docker-数据卷和数据容器卷
- Docker数据卷和数据卷容器
- Docker部署WordPress LNMP(Nginx PHP MySQL)环境实践
- Mycat 安装和配置
- lc#3求字符串中不包含重复字符的最大长度子串
- vue动态路由配置
- Java上传图片至七牛云
- 虚拟机下Centos7如何设置静态IP地址
- (docker)入门实践、环境部署、基本操作指令、镜像库、数据卷
- poi、Excel工具包,支持map转excel,bean转excel
- extundelete恢复Ubuntu系统下git clean -fd(rm)误删除的文件
- Vim小技巧
- CentOS7中systemctl的使用
- Python
- HTML5全局属性汇总
- 如何快速高效读懂1本书
- java的动态代理