docker - docker basic commands to use and publish mirror

docker image can be seen as a completely new computer use, no matter what the image is of a certain thing has been configured, then the package can be quickly ported to where it is needed directly

Eliminating the need for complicated configuration work

For example, java web project deployment, if the new deployment, you need to install the system, configuration jdk, maven, sql, redis and other types of environment, time-consuming and error-prone,

The docker will save the configuration troublesome environment, directly let you throw into the war package, to achieve the deployment of a project every minute

 

Simply put, using a scratch under the docker

 

This explains environment for ubuntu 16.04

First to install ubuntu docker, I installed the docker ee, installation method: https://docs.docker.com/engine/installation/linux/docker-ee/ubuntu/

After installing, it is the start docker

sudo service docker start

The corresponding stop command is stop the service dokcer

sudo service docker stop

You can then view the docker version that runs through --version

sudo docker --version

After the start, there is no mirror, but you can obtain the relevant mirrored by pull command

Copy the code
xiaochangwei@ubuntu:~/test$ 
xiaochangwei@ubuntu:~/test$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              17eb1d58bf8c        About an hour ago   505MB
ubuntu              16.04               00fd29ccc6f1        3 weeks ago         111MB
xiaochangwei@ubuntu:~/test$ 
xiaochangwei@ubuntu:~/test$ 
xiaochangwei@ubuntu:~/test$ sudo docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
e7bb522d92ff: Pull complete 
6edc05228666: Pull complete 
cd866a17e81f: Pull complete 
Digest: sha256:cf8d5726fc897486a4f628d3b93483e3f391a76ea4897de0500ef1f9abcd69a1
Status: Downloaded newer image for nginx:latest
xiaochangwei@ubuntu:~/test$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              17eb1d58bf8c        About an hour ago   505MB
nginx               latest              3f8a4339aadd        9 days ago          108MB
ubuntu              16.04               00fd29ccc6f1        3 weeks ago         111MB
xiaochangwei@ubuntu:~/test$ 
xiaochangwei@ubuntu:~/test$ 
Copy the code
sudo docker pull nginx default get the latest version, TAG is the latest, if you want to get a different version, you need to use sudo docker pull nginx: xxxx 

after fetching an image by docker run it up and running

sudo docker ps -a lists all containers, without -a lists only the running, like pulled out or just create a list of not to 
sudo docker run -d -p 8800: 80 --name nginx_xiao nginx # run the specified mirror
dudo docker run -d --privileged = true -p 83:80 --name nginx83 nginx # elevate privileges
# Homed host port: internal container port 
  -d background
  -p 8800: 80 is exposed outside designated internal port container with 8800 proxy 80 corresponds to an external host, like the host
  --name name specified container final code to be run nginx mirroring name has tag plus the tag as nginx: xxx default Latest
+8800 host port and then visit the host address

Nginx has already been shown that

pull the mirrored sure there are many places need to be modified, such as configuration files or to increase their own stuff into what

sudo docker exec -it 54d26bbce3d6 /bin/bash

通过exec命令进入到容器内部进行操作, 其中红色部分可以是容器id或容器名字

进入之后就和操作新的系统一样,操作完成之后输入exit退出

某些时候需要获取镜像信息详情,比如安装了mysql后需要获取镜像内部的IP,端口等
sudo docker inspect nginx_xiao

 这样会出来很多信息,可以通过grep检索需要的项目

xiaochangwei@ubuntu:~/test$ sudo docker inspect nginx_xiao |grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
xiaochangwei@ubuntu:~/test$ 

 

那么问题又来了, 进入容器内部并修改了东西后,怎么生成新的镜像供下次直接使用

Copy the code
xiaochangwei@ubuntu:~/test$ sudo docker commit nginx_xiao xiaochangwei/nginx:v1.0
sha256:9f2c1a649a75fc72af4c2d6972290d9bc5f97c62ac52d6705b902fcdefeceea1
xiaochangwei@ubuntu:~/test$ 
xiaochangwei@ubuntu:~/test$ sudo docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
xiaochangwei/nginx   v1.0                9f2c1a649a75        11 seconds ago      108MB
tomcat               latest              17eb1d58bf8c        4 hours ago         505MB
nginx                latest              3f8a4339aadd        9 days ago          108MB
ubuntu               16.04               00fd29ccc6f1        3 weeks ago         111MB
xiaochangwei@ubuntu:~/test$ 
Copy the code
sudo docker commit nginx_xiao xiaochangwei/nginx:v1.0
  nginx_xiao 表示我们刚修改的容器名字或者id
xiaochangwei/nginx:v1.0 为保存的镜像名字 :后面为tag

刚刚commit的镜像仅仅是保存在本地的,如果要提交到网络上供其他人pull 使用呢? 如 https://cloud.docker.com/
1.在https://cloud.docker.com/上注册一个账号
2.提交本地镜像到https://cloud.docker.com/上去

这样别人就可以通过docker pull xiaochangwei/nginx:v1.0 来获取并使用这个镜像了

需要注意的是: sudo docker commit nginx_xiao xiaochangwei/nginx:v1.0 镜像名里面包含了 我注册的账户名,这里需要一致,否则无法push

到这里镜像怎么获取,查看,启动,编辑,保存,提交 容器查看 都知道了,但是怎么停止、启动、删除容器呢
1.通过 sudo docker ps -a查看存在的容器信息
2.通过 sudo docker start/stop/restart xxx 来启动、停止、重启指定的容器
2.通过 sudo docker rm xxx 指定容器名或者容器id来删除,删除前请先停止容器,保证在非运行状态
Copy the code
xiaochangwei@ubuntu:~/test$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
54d26bbce3d6        nginx               "nginx -g 'daemon ..."   43 minutes ago      Up 43 minutes       0.0.0.0:8800->80/tcp   nginx_xiao
xiaochangwei@ubuntu:~/test$ sudo docker restart nginx_xiao
nginx_xiao
xiaochangwei@ubuntu:~/test$ sudo docker stop  nginx_xiao
nginx_xiao
xiaochangwei@ubuntu:~/test$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
54d26bbce3d6        nginx               "nginx -g 'daemon ..."   44 minutes ago      Exited (0) 2 seconds ago                       nginx_xiao
xiaochangwei@ubuntu:~/test$ sudo docker rm nginx_xiao
nginx_xiao
xiaochangwei@ubuntu:~/test$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
xiaochangwei@ubuntu:~/test$ 
Copy the code

   同样镜像的删除按如下操作

 1.通过sudo docker images 列出所有镜像

   2.通过sudo docker rmi xxx 来删除指定的镜像,镜像存在依赖关系,先删除最下层,最后删除顶层,建议根据镜像名字来删除

 

Copy the code
xiaochangwei@ubuntu:~/test$ sudo docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
xiaochangwei/nginx   v1.0                9f2c1a649a75        23 minutes ago      108MB
tomcat               latest              17eb1d58bf8c        4 hours ago         505MB
nginx                latest              3f8a4339aadd        9 days ago          108MB
ubuntu               16.04               00fd29ccc6f1        3 weeks ago         111MB
xiaochangwei@ubuntu:~/test$ sudo docker rmi tomcat
Untagged: tomcat:latest
Deleted: sha256:17eb1d58bf8cf6809a26c9c47396a259d419d795070670d5a1bf0cbe63f9167c
Deleted: sha256:ba92fe7a45fb76c9842f81a978a3671d3229077811e18c892ec18ddf7a8f372e
Deleted: sha256:909e728190891a5bc59fd5f20cc741a9f8cf05531008de8bf6fcb86cbf9b92b3
Deleted: sha256:757a35964f233352b539f21545c83f7443f666457075e177d5b88ae2afbc70ec
Deleted: sha256:e9af3a1672101d2803af7a9af40b3442e6b2ac5236d27fb486ea34c2be773dcc
Deleted: sha256:32e70354b98514f5c68cf18f01880e355826d7cd633eb7b303af25915e574556
Deleted: sha256:01cd90dce70e314277a0d5550578d8db86efd7aa512fec4587f971a1e2474b1f
Deleted: sha256:49909967c97ee31e2f3f69bbb150807e18b290eb3ab7f39ba0db3cc426278420
Deleted: sha256:b0427413f858084dffd95e8b7c42968c12f8229925a0d4c15985722ccc3f90e9
Deleted: sha256:1af387e1b89f088f694f89d1bd03c91a4f28e7704c4cc151994d0a3bfae42abe
Deleted: sha256:e3c3b2640184c780efdcc2a02fa3e4fdb7f96dceccc1452527d1e9a1a879399b
Deleted: sha256:6fb895d7f122630fbb471eb29f6d5ee2db66425e885f2c22462525daa7d263c2
Deleted: sha256:e3a0c7535fa27c5bb3d91fa905d363bc6a572ea78aad4e5e17b47604c5d2289f
Deleted: sha256:532ea8d384305c2f5fbcd946e0c7ce71d547550c1fa2f6726d37d26688c9e6f8
Deleted: sha256:dfde2fab09732f8a2ae1a51362222e205fda934baccc8017b23867a2e4a1eb90
xiaochangwei@ubuntu:~/test$ sudo docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
xiaochangwei/nginx   v1.0                9f2c1a649a75        24 minutes ago      108MB
nginx                latest              3f8a4339aadd        9 days ago          108MB
ubuntu               16.04               00fd29ccc6f1        3 weeks ago         111MB
xiaochangwei@ubuntu:~/test$ 
Copy the code

 

以上就是docker的基本使用命令了,下一篇将讲解通过dockerfile来构建镜像

原文地址:https://www.cnblogs.com/xiaochangwei/p/8204511.html

docker镜像可以完全看作一台全新的电脑使用,无论什么镜像都是对某一东西进行了配置,然后打包后可以快速移植到需要的地方直接使用

省去复杂的配置工作

比如java web项目部署,如果是新部署,需要装系统,配置jdk,maven,sql,redis等各类环境,费时费力还容易出错,

而docker就可以省去配置环境的麻烦,直接让你把war包丢进去,实现分分钟部署一个项目

 

从头开始简单的说下docker的使用

 

本次讲解环境为ubuntu 16.04

首先给ubuntu安装docker,我安装的是docker ee, 安装方法:https://docs.docker.com/engine/installation/linux/docker-ee/ubuntu/

安装好之后,便是启动docker

sudo service docker start

与之对应的停止dokcer服务命令就是stop了

sudo service docker stop

然后通过--version可以查看运行的docker版本

sudo docker --version

启动后,是没有任何镜像的,不过可以通过pull命令获取相关镜像

Copy the code
xiaochangwei@ubuntu:~/test$ 
xiaochangwei@ubuntu:~/test$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              17eb1d58bf8c        About an hour ago   505MB
ubuntu              16.04               00fd29ccc6f1        3 weeks ago         111MB
xiaochangwei@ubuntu:~/test$ 
xiaochangwei@ubuntu:~/test$ 
xiaochangwei@ubuntu:~/test$ sudo docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
e7bb522d92ff: Pull complete 
6edc05228666: Pull complete 
cd866a17e81f: Pull complete 
Digest: sha256:cf8d5726fc897486a4f628d3b93483e3f391a76ea4897de0500ef1f9abcd69a1
Status: Downloaded newer image for nginx:latest
xiaochangwei@ubuntu:~/test$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              17eb1d58bf8c        About an hour ago   505MB
nginx               latest              3f8a4339aadd        9 days ago          108MB
ubuntu              16.04               00fd29ccc6f1        3 weeks ago         111MB
xiaochangwei@ubuntu:~/test$ 
xiaochangwei@ubuntu:~/test$ 
Copy the code
sudo docker pull nginx 默认获取最新版本,即TAG为latest的,如果要获取其他版本,则需要使用 sudo docker pull nginx:xxxx

获取镜像后,通过docker run使其运行起来

sudo docker ps -a 列出所有容器, 不加 -a 仅列出正在运行的,像退出了的或者仅仅只是创建了的就不列出来
sudo docker run -d -p 8800:80 --name nginx_xiao  nginx #运行指定的镜像
dudo docker run -d --privileged=true -p 83:80 --name nginx83 nginx #提升权限
#宿主主机端口:容器内部端口 
  -d 后台运行
  -p 8800:80 是指定对外暴露的端口 容器内部用80 对应外部宿主主机的的8800 代理一样
  --name指定容器的名字 最后的nginx 代码要运行的镜像名字 有tag的加上tag 如 nginx:xxx 默认为latest
然后访问宿主主机地址+8800端口

表明nginx已经成功运行

pull到的镜像肯定有很多需要修改的地方,比如配置文件等或者要自己增加些什么玩意儿进去

sudo docker exec -it 54d26bbce3d6 /bin/bash

通过exec命令进入到容器内部进行操作, 其中红色部分可以是容器id或容器名字

进入之后就和操作新的系统一样,操作完成之后输入exit退出

某些时候需要获取镜像信息详情,比如安装了mysql后需要获取镜像内部的IP,端口等
sudo docker inspect nginx_xiao

 这样会出来很多信息,可以通过grep检索需要的项目

xiaochangwei@ubuntu:~/test$ sudo docker inspect nginx_xiao |grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
xiaochangwei@ubuntu:~/test$ 

 

那么问题又来了, 进入容器内部并修改了东西后,怎么生成新的镜像供下次直接使用

Copy the code
xiaochangwei@ubuntu:~/test$ sudo docker commit nginx_xiao xiaochangwei/nginx:v1.0
sha256:9f2c1a649a75fc72af4c2d6972290d9bc5f97c62ac52d6705b902fcdefeceea1
xiaochangwei@ubuntu:~/test$ 
xiaochangwei@ubuntu:~/test$ sudo docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
xiaochangwei/nginx   v1.0                9f2c1a649a75        11 seconds ago      108MB
tomcat               latest              17eb1d58bf8c        4 hours ago         505MB
nginx                latest              3f8a4339aadd        9 days ago          108MB
ubuntu               16.04               00fd29ccc6f1        3 weeks ago         111MB
xiaochangwei@ubuntu:~/test$ 
Copy the code
sudo docker commit nginx_xiao xiaochangwei/nginx:v1.0
  nginx_xiao 表示我们刚修改的容器名字或者id
xiaochangwei/nginx:v1.0 为保存的镜像名字 :后面为tag

刚刚commit的镜像仅仅是保存在本地的,如果要提交到网络上供其他人pull 使用呢? 如 https://cloud.docker.com/
1.在https://cloud.docker.com/上注册一个账号
2.提交本地镜像到https://cloud.docker.com/上去

这样别人就可以通过docker pull xiaochangwei/nginx:v1.0 来获取并使用这个镜像了

需要注意的是: sudo docker commit nginx_xiao xiaochangwei/nginx:v1.0 镜像名里面包含了 我注册的账户名,这里需要一致,否则无法push

到这里镜像怎么获取,查看,启动,编辑,保存,提交 容器查看 都知道了,但是怎么停止、启动、删除容器呢
1.通过 sudo docker ps -a查看存在的容器信息
2.通过 sudo docker start/stop/restart xxx 来启动、停止、重启指定的容器
2.通过 sudo docker rm xxx 指定容器名或者容器id来删除,删除前请先停止容器,保证在非运行状态
Copy the code
xiaochangwei@ubuntu:~/test$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
54d26bbce3d6        nginx               "nginx -g 'daemon ..."   43 minutes ago      Up 43 minutes       0.0.0.0:8800->80/tcp   nginx_xiao
xiaochangwei@ubuntu:~/test$ sudo docker restart nginx_xiao
nginx_xiao
xiaochangwei@ubuntu:~/test$ sudo docker stop  nginx_xiao
nginx_xiao
xiaochangwei@ubuntu:~/test$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
54d26bbce3d6        nginx               "nginx -g 'daemon ..."   44 minutes ago      Exited (0) 2 seconds ago                       nginx_xiao
xiaochangwei@ubuntu:~/test$ sudo docker rm nginx_xiao
nginx_xiao
xiaochangwei@ubuntu:~/test$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
xiaochangwei@ubuntu:~/test$ 
Copy the code

   同样镜像的删除按如下操作

 1.通过sudo docker images 列出所有镜像

   2.通过sudo docker rmi xxx 来删除指定的镜像,镜像存在依赖关系,先删除最下层,最后删除顶层,建议根据镜像名字来删除

 

Copy the code
xiaochangwei@ubuntu:~/test$ sudo docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
xiaochangwei/nginx   v1.0                9f2c1a649a75        23 minutes ago      108MB
tomcat               latest              17eb1d58bf8c        4 hours ago         505MB
nginx                latest              3f8a4339aadd        9 days ago          108MB
ubuntu               16.04               00fd29ccc6f1        3 weeks ago         111MB
xiaochangwei@ubuntu:~/test$ sudo docker rmi tomcat
Untagged: tomcat:latest
Deleted: sha256:17eb1d58bf8cf6809a26c9c47396a259d419d795070670d5a1bf0cbe63f9167c
Deleted: sha256:ba92fe7a45fb76c9842f81a978a3671d3229077811e18c892ec18ddf7a8f372e
Deleted: sha256:909e728190891a5bc59fd5f20cc741a9f8cf05531008de8bf6fcb86cbf9b92b3
Deleted: sha256:757a35964f233352b539f21545c83f7443f666457075e177d5b88ae2afbc70ec
Deleted: sha256:e9af3a1672101d2803af7a9af40b3442e6b2ac5236d27fb486ea34c2be773dcc
Deleted: sha256:32e70354b98514f5c68cf18f01880e355826d7cd633eb7b303af25915e574556
Deleted: sha256:01cd90dce70e314277a0d5550578d8db86efd7aa512fec4587f971a1e2474b1f
Deleted: sha256:49909967c97ee31e2f3f69bbb150807e18b290eb3ab7f39ba0db3cc426278420
Deleted: sha256:b0427413f858084dffd95e8b7c42968c12f8229925a0d4c15985722ccc3f90e9
Deleted: sha256:1af387e1b89f088f694f89d1bd03c91a4f28e7704c4cc151994d0a3bfae42abe
Deleted: sha256:e3c3b2640184c780efdcc2a02fa3e4fdb7f96dceccc1452527d1e9a1a879399b
Deleted: sha256:6fb895d7f122630fbb471eb29f6d5ee2db66425e885f2c22462525daa7d263c2
Deleted: sha256:e3a0c7535fa27c5bb3d91fa905d363bc6a572ea78aad4e5e17b47604c5d2289f
Deleted: sha256:532ea8d384305c2f5fbcd946e0c7ce71d547550c1fa2f6726d37d26688c9e6f8
Deleted: sha256:dfde2fab09732f8a2ae1a51362222e205fda934baccc8017b23867a2e4a1eb90
xiaochangwei@ubuntu:~/test$ sudo docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
xiaochangwei/nginx   v1.0                9f2c1a649a75        24 minutes ago      108MB
nginx                latest              3f8a4339aadd        9 days ago          108MB
ubuntu               16.04               00fd29ccc6f1        3 weeks ago         111MB
xiaochangwei@ubuntu:~/test$ 
Copy the code

 

These are the basic docker use the command, the next one will explain to build mirrored by dockerfile

Original Address: https: //www.cnblogs.com/xiaochangwei/p/8204511.html

Guess you like

Origin www.cnblogs.com/jpfss/p/11227309.html