阿里云:
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
https://download.docker.com/linux/centos/docker-ce.repo
****curl url #可以看一下网络通不通
****虚拟机的时候,设置两个网卡:一个host-only,一个nat
一、docker基本操作
1、安装
#可以查看docker有没有镜像
$ docker search XXX
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repohttps://download.docker.com/linux/centos/docker-ce.repo
# 关闭防火墙和selinux
$ systemctl stop firewalld
$ setenforce 0
运行 (root账号执行启动)
$ sudo systemctl start docker
2、安装镜像
# docker images
[root@bogon docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest e38bc07ac18e 5 weeks ago 1.85kB
centos latest e934aafc2206 5 weeks ago 199MB
[root@bogon docker]# docker run -ti e934
进入镜像,退出
[root@cf085ef769b3 /]# exit
3、一些常见命令(这部分有粘贴,如果侵权,联系删除)
1、docker -h 帮助 2、获取镜像 sudo docker pull NAME[:TAG] sudo docker pull centos:latest 3、启动Container盒子 sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...] sudp docker run -t -i contos /bin/bash 4、查看镜像列表,列出本地的所有images sudo docker images [OPTIONS] [NAME] sudo docker images centos 5、查看容器列表,可看到我们创建过的所有container sudo docker ps [OPTIONS] sudo docker ps -a 6、删除镜像,从本地删除一个已经下载的镜像 sudo docker rmi IMAGE [IMAGE...] sudo docker rmi centos:latest 7、移除一个或多个容器实例 sudo docker rm [OPTIONS] CONTAINER [CONTAINER...] 移除所有微运行的容器 sudo docker rm sudo docker ps -aq 8、停止一个正在运行的容器 sudo docker kill [OPTIONS] CONTAINER [CONTAINNER...] sudo docker kill 026e 9、重启一个正在运行的容器 sudo docker restart [OPTIONS] contains[CONTAINER] sudo docker restart 026e 10、停止一个已经停止的容器 sudo docker start [OPTIONS] CONTAINER [CONTAINER..] sudo docker start 026e
4、外界访问,用 docker run -ti 访问,外界无法访问,要加映射
安装jdk,搜索安装 yum search java|grep jdk yum install java-1.8.0-openjdk
查看jdk版本
java -version
5、安装一个jdk的镜像
#这个应该不太对,这个是整个java的
#安装一个jdk的镜像
sudo docker pull java
在相应的目录项创建文件
(创建目录 mkdir dockerInfo
创建文件 touch Dockerfile)
[root@bogon dockerInfo]# ls
Dockerfile javastudy.jar run.sh
6、编辑文件
#Dockerfile文件内容 FROM java ADD javastudy.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-jar","/app.jar"]
#说明
dockerfile的基础命令FROM:
指为当前的环境引入一个基础镜像(nginx环境之上的linux内核镜像)
RUN:运行指令(apt install vim相似的指令)
CMD:执行命令(和run很相似,但是一个dockerfile只能有一个cmd指令,如有 多个最后一个生效)
LABEL:设置标签(类似为变量赋值)
EXPOSE:暴露端口号(解除断口的防火墙)
ENV:设置环境变量
COPY:复制到指定地方
ADD: copy指令的高级版(具有解压功能)
ENTRYPOINT:切入点(如run功能相似,但是可以覆盖CMD的内容)
VOLUME:挂载的作用
USER:指定容器的用户
WORKDIR:如果目录存在 cd到指定目录,不存在则创建并cd到指定目录
ARG:表示变量
7、创建新的镜像
#其中 -t 标记来添加 tag,指定新的镜像的用户信息。“.” 是 Dockerfile 所在的路径(当前目录),也可以替换为一个具体的 Dockerfile 的路径。 #注意最后的那个 . # -t 说明的镜像名称,没有-f,是默认当前目录下的Dockerfile #有-f,是指定目录,还有,每次需改Dockerfile,需要修改镜像 sudo docker build -t springboottest . #修改镜像(大概是这样,没试过) docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2 #删除镜像 docker images #记住镜像的Id docker ps -a #查看镜像下的容器 docker rm 容器id
#删除所有的容器
docker rm $(docker ps -a -q) #在删除镜像 docker rmi 镜像id
8、运行
#内部运行 不推荐, docker run -ti springboottest #设置端口号 docker run -d -p 8080:8080 springboottest 就可以访问了 http://Ip:8080
二、Nginx的安装使用
1、镜像
#查看docker有没有镜像
docker search nginx
#查看到最新的
docker pull nginx
#可以查到 nginx的镜像
docker images
2、运行,分配端口80
#运行,分配端口80 docker run -d -p 80:80 nginx #可以访问IP,80是默认端口
3、使用配置
#查看容器Id docker ps #进入容器 docker inspect 容器Id号 #还有另外一种方法 $ sudo docker ps $ sudo docker exec -ti 容器Id /bin/bash
#vi 和vim没有找到命令,安装一下命令
$ apt-get update
$apt-get install vim
#查看nginx配置
$ cd /etc/nginx/
$ vi nginx.conf
#nginx.conf说明
########### 每个指令必须有分号结束。#################
#user administrator administrators; #配置用户或者组,默认为nobody nobody。
#worker_processes 2; #允许生成的进程数,默认为1
#pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址
error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
events {
accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on
multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
#use epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
worker_connections 1024; #最大连接数,默认为512
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型,默认为text/plain
#access_log off; #取消服务日志
log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
access_log log/access.log myFormat; #combined为日志格式的默认值
sendfile on; #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
keepalive_timeout 65; #连接超时时间,默认为75s,可以在http,server,location块。
upstream mysvr {
server 127.0.0.1:7878;
server 192.168.10.121:3333 backup; #热备
}
error_page 404 https://www.baidu.com; #错误页
server {
keepalive_requests 120; #单连接请求上限次数。
listen 4545; #监听端口
server_name 127.0.0.1; #监听地址
location ~*^.+$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
#root path; #根目录
#index vv.txt; #设置默认页
proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表
deny 127.0.0.1; #拒绝的ip
allow 172.18.5.54; #允许的ip
}
}
}
三、mysql
#镜像
$ docker pull mysql
#运行mysql
$ docker run -d -P mysql