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 hostPort:containerPort
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]
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:其他进入容器方法请看下篇文章