1..docker是什么?

Docker是一个开发,运输和运行应用程序的开放平台。 Docker使您可以将应用程序与基础架构分离, 以便快速交付软件。 使用Docker,您可以像管理应用程序一样管理基础架构(OS)。 通过利用 Docker的方法快速发送,测试和部署代码,您可以显着减少编写代码和在生产中运行代码之间的延迟。 

容器提供了隔离性,结论是,容器可以为各种测试提供很好的沙盒环境。并且,容器本身就具有“标准 性”的特征,非常适合为服务创建构建块。
 

Docker的一些应用场景如下:

  • 加速本地开发和构建流程,使其更加高效、更加轻量化。本地开发人员可以构建、运行并分享 Docker容器。容器可以在开发环境中构建,然后轻松的提交到测试环境中,并终进入生产环 境。 开发人员与运维人员进行职责的逻辑分离
  • 能够让独立的服务或应用程序在不同的环境中,得到相同的运行结果。这一点在面向服务的架构和 重度依赖微型服务的部署由其实用。
  • 用Docker创建隔离的环境来进行测试。例如,用Jenkins CI这样的持续集成工具启动一个用于测试 的容器。(持续化集成 war 实际部署:jenkins持续化集成 Jenkins + git )
  • Docker可以让开发者先在本机上构建一个复杂的程序或架构来进行测试,而不是一开始就在生产 环境部署、测试。
  • 构建一个多用户的平台即服务(PaaS)基础设施 为开发、测试提供一个轻量级的独立的沙盒环境 提供软件即服务(SaaS)应用程序,例如Memcached即服务
  • 高性能、超大规模的宿主机部署(可以很多容器)

2.docker命令

安装docker:包含社区版和企业版

一、安装docker存储库(在新主机上首次安装Docker CE之前,需要设置Docker存储库。之后,您可以从 存储库安装和更新Docker)

1、sudo apt-get update 

2、sudo apt-get install \   apt-transport-https \   ca-certificates \   curl \   gnupg-agent \   software-properties-common

3、curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

4、sudo add-apt-repository \  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \  $(lsb_release -cs) \  stable"


二、安装docker ce

1、sudo apt-get update

2、sudo apt-get install docker-ce docker-ce-cli containerd.io

3.  sudo docker run hello-world 检测是否安装成功

 

 

操作docker的命令:

1.启动/停止/重启 docker:   sudo systemctl start/stop/restart docker

2.查看docker运行状态   sudo sytemctl status docker

3. 列出镜像   docker images

REPOSITORY:表示镜像的仓库源
IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小 

 4.查找镜像  docker search 镜像名称 

NAME:镜像仓库源的名称 DESCRIPTION:镜像的描述
starts:用户评价,反应一个镜像的受欢迎程度 OFFICIAL:是否docker官方发布
auto commit:自动构建,表示该镜像由Docker Hub自动构建流程创建的 

5. 拉取镜像  docker pull 镜像名称[:version]
配置镜像加速器(参考该网站具体的文档操作)
步骤:

sudo vim /etc/docker/daemon.json    

配置内容:    

{        "registry-mirrors": ["https://cs913o6k.mirror.aliyuncs.com"]    }

sudo systemctl daemon-reload

sudo systemctl restart docker
6. 删除镜像 

1、删除一个镜像 docker rmi 镜像名称/id
2、删除多个镜像 docker rmi 镜像名称1/id1 镜像名称2/id2 ...
3、删除所有镜像 docker rmi `docker images -q` 

7. 创建容器

docker run [options] image command [ARG...]

options选项: -i、-t、-d、--name

-i:交互式容器

-t:tty,终端

-d:后台运行,并且打印容器id
sh /usr/local/tomcat7/bin/startup.sh(shell脚本 #/bin/bash  py  rb  lua)

Linux:根的进程:/bin/bash  tree                /xxx                    /yyy
eg:创建的容器名称不能重复

docker run --name=u1 ubuntu

docker run -i -t --name=u1 ubuntu /bin/bash

docker run -i -t -d --name=u3 ubuntu /bin/bash

8.进入容器

方式一: docker attach 容器名称/id               (ps:exit,容器停止) eg:docker attach u3
方式二: docker exec -it 容器名称/id /bin/bash   (ps:exit,容器不会停止) eg:docker exec -it u3 /bin/bash

9.查看容器

docker ps:查看正在运行的容器

docker ps -a:查看运行过的容器(历史)

docker ps -l:后一次运行的容器

10.停止/启动容

docker start 容器名称/id

docker stop 容器名称/id

11.删除容器

删除一个容器: docker rm 容器名称/id
删除多个容器: docker rm 容器名称1/id1 容器名称2/id2 ...
删除所有容器 docker rm `docker ps -a -q`
PS:无法删除正在运行的容器

12.查看容器日志 docker logs 容器名称/id

13.文件拷贝 
如果我们需要将文件拷贝到容器内可以使用cp命令
也可以将文件从容器内拷贝出来
docker cp 需要拷贝的文件或目录 容器名称:容器目录

例如:docker cp 1.txt c2:/root

docker cp 容器名称:容器目录 需要拷贝的文件或目录

例如:docker cp c2:/root/2.txt /root

14.目录挂载 
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主 机某个目录的文件从而去影响容器。
创建容器 添加-v参数 后边为 宿主机目录:容器目录

docker run -id --name=c4 -v /opt/:/usr/local/myhtml centos

这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂 载的目录没有权限的问题

docker run -id --privileged=true --name=c4 -v /opt/:/usr/local/myhtml centos

 

 

 

 

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐