docker入门教程(二)基础命令

1.配置docker加速器

由于Docker Hub 的服务器在国外,下载镜像会比较慢。幸好DaoCloud为我们提供了免费的国内镜像服务

[root@docker docker]# tee /etc/docker/daemon.json <<- 'EOF'
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF

1.11启动第一个容器

1.为什么要端口映射?
在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。

2.端口映射的指令是什么?
docker指令:docker run -p ip:hostPort:containerPort redis

使用-p参数会分配宿主机的端口映射到虚拟机。 
IP表示主机的IP地址。 
hostPort表示宿主机的端口。 
containerPort表示虚拟机的端口。
docker run -d -p  1111:80 nginx

run 创建并运行一个容器

-d   后台运行

-p  端口映射   指定容器的80端口映射到主机上的1111端口  这表示可以利用主机ip地址加1111端口访问80    -p hostPortcontainerPort

nginx 镜像名称

[root@docker1 ~]# curl -I 10.0.0.11:1111
HTTP/1.1 200 OK
Server: nginx/1.13.12
Date: Tue, 29 May 2018 11:37:34 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Mon, 09 Apr 2018 16:01:09 GMT
Connection: keep-alive
ETag: "5acb8e45-264"
Accept-Ranges: bytes

[root@docker1 ~]# netstat -lntup|grep 1111
tcp6       0      0 :::1111                 :::*                    LISTEN      2918/docker-proxy

1.12docker-镜像基础操作

1.查看镜像列表  docker image ls  or docker images

[root@docker1 ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest ae513a47849c 3 weeks ago 109MB centos latest ff426288ea90 4 months ago 207MB
2.搜索镜像
docker search 镜像名
[root@docker1 ~]# docker search nginx
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                                                  Official build of Nginx.                        8564                [OK]                
jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker con…   1335                                    [OK]
richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable of…   547                                     [OK]
3.下载镜像 docker pull  镜像name
4.删除镜像
docker image rm nginx:latest            ###nginx是镜像名 latest是版本
或者
docker rmi nginx:latest
5.导出镜像
docker image save nginx >docker-nginx.tar.gz  ##导出nginx镜像到当前目录,并命名为docker-nginx.tar.gz 
[root@docker1 ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ce    latest              e420c3fac3e3        7 days ago          1.39GB
nginx               latest              ae513a47849c        10 days ago         109MB
[root@docker1 ~]# docker image save nginx >docker-nginx.tar.gz
[root@docker1 ~]# ls -lh
total 108M
-rw-r--r--  1 root root 108M May 11 00:58 docker-nginx.tar.gz
6.导入镜像
[root@docker1 ~]# ls
docker-nginx.tar.gz
[root@docker1 ~]# docker image load -i docker-nginx.tar.gz
d626a8ad97a1: Loading layer [==================================================>]  58.46MB/58.46MB
82b81d779f83: Loading layer [==================================================>]  54.21MB/54.21MB
7ab428981537: Loading layer [==================================================>]  3.584kB/3.584kB
Loaded image: nginx:latest
[root@docker1 ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ce    latest              e420c3fac3e3        7 days ago          1.39GB
nginx               latest              ae513a47849c        10 days ago         109MB
7.显示镜像详细信息
docker image inspect
[root@docker1 ~]# docker image inspect nginx

 1.13 docker-容器基础操作

1.查看处于启动状态的容器   ps:container(容器)
docker ps                    或者docker container ls
[root@docker1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
8dc2f174d51f        nginx:latest        "nginx -g 'daemon of…"   5 minutes ago       Up 5 minutes        0.0.0.0:8080->80/tcp   boring_hoover
[root@docker1 ~]# docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
8dc2f174d51f        nginx:latest        "nginx -g 'daemon of…"   5 minutes ago       Up 5 minutes        0.0.0.0:8080->80/tcp   boring_hoover
2.查看处于启动和停止(退出)状态的容器
docker ps -a   
[root@docker1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                  NAMES
8dc2f174d51f        nginx:latest        "nginx -g 'daemon of…"   17 minutes ago      Up 17 minutes               0.0.0.0:8080->80/tcp   boring_hoover
5102e4c9c684        nginx:latest        "nginx -g 'daemon of…"   19 minutes ago      Exited (0) 12 minutes ago                          goofy_brahmagupta
3.查看容器ip地址
docker container inspect   CONTAINER ID   或者           docker container inspect  'NAMES(容器名)’
例:
[root@docker1 ~]# docker ps  ##先查看容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
8dc2f174d51f        nginx:latest        "nginx -g 'daemon of…"   24 minutes ago      Up 24 minutes       0.0.0.0:8080->80/tcp   boring_hoover

docker container inspect 8dc2f174d51f  或者docker container inspect boring_hoover
4.停止一个容器
docker container stop CONTAINER ID
或者
docker container kill CONTAINER ID
5.删除一个容器  ps:只有先停止才可以删除
docker container rm CONTAINER ID
6.查看容器日志
docker container logs CONTAINER ID [root@docker1
~]# docker container logs 8dc2f174d51f 10.0.0.11 - - [29/May/2018:14:32:55 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.29.0" "-"
7.杀死所有正在运行的容器
docker ps -a -q  ##只显示容器id号
然后
docker container stop  $(docker ps -a -q) 或者docker container kill $(docker ps -a -q)
8.进入容器:docker exec -it CONTAINER ID
[root@docker1 ~]# docker exec -it 8dc2f174d51f /bin/bash
root@8dc2f174d51f:/# 

ps:
-it: 
-i:交互式   
-t:分配一个终端

ps:其他进入容器方法请看下篇文章
原文地址:https://www.cnblogs.com/mclzy/p/9090140.html