docker的安装以及常用命令详解

目录

一、docker简介

二、docker安装

三、常用命令

1、显示 Docker 版本信息

2、显示 Docker 系统信息,包括镜像和容器数

3、帮助

四、镜像管理

1、列出镜像

2、获取一个新的镜像

3、查找镜像

4、删除镜像

5、镜像导入与导出

五、容器生命周期

1、运行容器

2、启动被停止的容器

3、停止运行中的容器

4、重启容器

5、杀掉运行中的容器

6、删除容器

7、暂停容器中所有进程

8、启动容器中所有进程

9、运行的容器中执行命令

10、删除所有停止状态的容器

六、容器操作

1、列出容器

2、获取容器/镜像的元数据

3、获取容器的日志

4、查看容器的端口映射情况

5、容器改名

七、rootfs命令

1、容器中创建一个新的镜像

2、容器与主机之间数据拷贝

3、检查容器中文件结构的更改

八、镜像仓库

1、登陆到Docker镜像仓库

2、登出Docker镜像仓库

3、从镜像仓库拉取镜像

4、将镜像上传到镜像仓库

5、从Docker Hub查找镜像


一、docker简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

二、docker安装

访问官网,选择相应的操作系统进行安装即可

对于macOS 我们可以使用 Homebrew 来安装 Docker。

Homebrew 的 Cask 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装:

$ brew install --cask --appdir=/Applications docker

==> Creating Caskroom at /usr/local/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
Password:          # 输入 macOS 密码
==> Satisfying dependencies
==> Downloading https://download.docker.com/mac/stable/21090/Docker.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask docker
==> Installing Cask docker
==> Moving App 'Docker.app' to '/Applications/Docker.app'.
🍺  docker was successfully installed!

在载入 Docker app 后,点击 Next,可能会询问你的 macOS 登陆密码,你输入即可。之后会弹出一个 Docker 运行的提示窗口,状态栏上也有有个小鲸鱼的图标(

三、常用命令

  • Docker环境信息 — docker [info|version]
  • 容器生命周期管理 — docker [create|exec|run|start|stop|restart|kill|rm|pause|unpause]
  • 容器操作运维 — docker [ps|inspect|top|attach|wait|export|port|rename|stat]
  • 容器rootfs命令 — docker [commit|cp|diff]
  • 镜像仓库 — docker [login|pull|push|search]
  • 本地镜像管理 — docker [build|images|rmi|tag|save|import|load]
  • 容器资源管理 — docker [volume|network]
  • 系统日志信息 — docker [events|history|logs]

1、显示 Docker 版本信息

docker version  

2、显示 Docker 系统信息,包括镜像和容器数

docker info 

3、帮助

docker --help

四、镜像管理

1、列出镜像

docker images

2、获取一个新的镜像

docker pull nginx:1.18.0

3、查找镜像

我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/

我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。

docker search httpd

4、删除镜像

docker image rm 镜像名标签或者ID
docker rmi 镜像名标签或者ID
docker rmi -f 镜像名标签或者ID     #强制删除

5、镜像导入与导出

方法一:
docker save image:tag > xxx.tar                   # save导出.tar
docker load < xxx.tar                             # load导入镜像
方法二:
docker export image > xxx.tar                     # export导出成.tar
cat xxx.tar | sudo docker import - image:tag      # import导入镜像

注:两种方法不可混用

五、容器生命周期

1、运行容器

docker run -it nginx:latest sh
# -d: 后台运行容器    -i:以交互模式运行容器    -t:为容器重新分配一个伪输入终端   -it常一起使用
# -p: 指定端口映射,格式为:主机(宿主)端口:容器端口    --name="nginx-lb":为容器指定一个名称
# -v: 挂载目录    -e username="ritchie":设置环境变量    -env-file=[]:从指定文件读入环境变量  

2、启动被停止的容器

docker start 容器名或ID

3、停止运行中的容器

docker stop 容器名或ID

4、重启容器

docker restart 容器名或ID

5、杀掉运行中的容器

docker kill -s KILL 容器名或者ID

6、删除容器

docker rm 容器名或ID

7、暂停容器中所有进程

暂停数据库容器db01提供服务:   docker pause db01

8、启动容器中所有进程

恢复数据库容器db01提供服务:   docker unpause db01

9、运行的容器中执行命令

docker exec -it 容器名或ID sh
# -d:分离模式,在后台运行     -i:即使没有附加也保持打开     -t:分配一个伪终端

10、删除所有停止状态的容器

docker rm `docker ps -a|grep Exited|awk '{print $1}'`

六、容器操作

1、列出容器

docker ps   # 参数 -a:显示所有的容器    -f:根据条件过滤显示    -l:显示最近创建的容器  
            # 参数  -q:静默模式,只显示容器编号     -s:显示总的文件大小。

2、获取容器/镜像的元数据

docker inspect 容器名或ID | grep IPAddress   显示容器的IP

3、获取容器的日志

docker logs  # 参数: -f:跟踪日志输出  --since:显示某个开始时间的所有日志  -t:显示时间戳  --tail:仅列出最新N条容器日志

4、查看容器的端口映射情况

docker port 容器名或ID

5、容器改名

docker rename  旧容器名  新容器名

七、rootfs命令

1、容器中创建一个新的镜像

docker commit -a "作者" -m "说明文字" 容器名或ID 镜像名:标签

2、容器与主机之间数据拷贝

docker cp /datadir xxx:/datapath     # 主机/datadir目录拷贝到容器xxx中,目录重命名为/datapath

3、检查容器中文件结构的更改

docker diff mymysql                  # 查看容器mymysql的文件结构更改

八、镜像仓库

1、登陆到Docker镜像仓库

docker login -u 用户名 -p 密码  # 登陆到Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库Docker Hub

2、登出Docker镜像仓库

docker logout  # 登出Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

3、从镜像仓库拉取镜像

docker pull java:latest    # 拉去镜像库最新的java镜像

4、将镜像上传到镜像仓库

docker push java:latest    # 上传本地镜像java:latest到镜像仓库中

5、从Docker Hub查找镜像

docker search 
参数:     --automated:只列出 automated build类型的镜像  
          --no-trunc :显示完整的镜像描述  
          -s :列出收藏数不小于指定值的镜像。

例1:使用docker安装并启动nginx

docker run -d --name nginx -p 80:80 -v /root/nginx/html:/usr/share/nginx/html nginx:1.18.0

例2:安装并运行Jenkins

chenshifengdeMacBook-Pro:~ chenshifeng$ docker volume create jenkins_shifeng
jenkins_shifeng
chenshifengdeMacBook-Pro:~ chenshifeng$ docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_shifeng:/var/jenkins_home jenkins/jenkins:lts

例3:安装testlink

创建容器网络:

docker network create testlink

运行数据库:

docker run -d  --name mariadb -e MARIADB_ROOT_PASSWORD=mariadb -e MARIADB_USER=bn_testlink -e MARIADB_PASSWORD=bn_testlink -e MARIADB_DATABASE=bitnami_testlink --net testlink -v ${PWD}/mariadb:/bitnami bitnami/mariadb:10.3.22

运行testlink

docker run -d -p 80:80 -p 443:443 --name testlink -e TESTLINK_DATABASE_USER=bn_testlink -e TESTLINK_DATABASE_PASSWORD=bn_testlink -e TESTLINK_DATABASE_NAME=bitnami_testlink --net testlink -v ${PWD}/testlink:/bitnami bitnami/testlink:1.9.20

默认用户名:user,默认密码:bitnami

docker的安装以及常用命令详解_第1张图片

你可能感兴趣的:(自动化测试,docker,策略模式,容器,压力测试,python,自动化测试)