docker学习
Docker
Docker官网:https://hub.docker.com/
查看docker镜像的版本:https://hub.docker.com
注:一下没有标明版本的,都是默认镜像的最新版本latest
Docker安装
brew安装
https://brew.sh/index_zh-cn#install 安装步骤:https://www.cnblogs.com/x1you/p/12506405.html 安装问题:https://www.cnblogs.com/qidiantianxia/p/14320056.html
拉取镜像及创建容器
进入容器
docker exec -it 容器名称 /bin/bash
删除全部容器
docker rm $(docker ps -aq)
停用并删除所有容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
安装mysql
1.搜索mysql,省略了版本号
docker search mysql
2.查看mysql镜像的版本
https://hub.docker.com
3.拉取,省略了版本号
docker pull mysql
4.查看镜像信息
docker inspect mysql
5.创建mysql目录并进入该目录下
mkdir mysql
cd mysql
6.创建mysql容器
docker run -id -p 3306:3306 --name=mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql
7.退出
exit
8.再次进入
docker exec -it mysql容器名称 /bin/bash
9.进入mysql窗口
mysql -uroot -p root
10:关闭容器
docker stop 容器名称
11:重启容器
docker restart 容器名称
安装tomcat
1.拉取最新版本
docker pull tomcat
2.创建webapps数据卷目录
mkdir tomcat
cd tomcat
3.创建容器,$PWD当前路径
docker run -id --name=tomcat -p 8080:8080 -v $PWD:/usr/local/tomcat/webapps tomcat
--提示没有权限
打开docker->右上角设置->左侧菜单Resources->File Sharing->右侧点击➕,添加可以访问路径
一下访问
4.创建测试网站
mkdir test
cd test
vim index.html
5.测试
http://lcoalhost:8080/test/index.html
安装nginx,省略拉取镜像,同上,提前准备好nginx的配置文件
1. 拉取最新版本
docker pull nginx
2.创建配置文件
mkdir nginx
cd nginx
mkdir conf
cd conf
vim nginx.conf
3.创建容器
docker run -id --name=nginx -p 80:80 \ -v $PWD/conf/nginx.conf:/etc/nginx/var/nginx.conf \ -v $PWD/logs:/var/log/nginx \ -v $PWD/html:/usr/share/nginx/html \ nginx
4.测试
http://localhost:80
--403访问被拒绝
待解决
nginx.conf
user nginx
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timout 65;
#gzip on;
include /etc/nginx/conf.d*.conf;
}
-----------------这以下代码还未运行,不保证其准确性-------------------
安装redis,省略拉取镜像,同上
docker run -id --name=redis -p 6379:6379 redis
redis-cli.exe -h localhost -p 6379
镜像制作
1.容器转为镜像
1.用容器制作镜像
docker commit 容器ID 镜像名称:版本号 2.打包到压缩文件
docker save -o 压缩文件名称 镜像名称:版本号 3.解压缩镜像
docker load -i 压缩文件名称
2.dockerfile
1.编写dockerfile
vim dockerfile
FROM 镜像名称:版本号 MAINTANIER 作者 <邮箱> run ... cmd java jar jar包 别名
2.用dockerfile创建镜像
docker build -f dockerfile -t 镜像名称:版本号 .
docker-compose
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose'-uname -s'-'uname -m' -o usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
制作dockerfile组件
1.编写docker-compse.yml文件
vim docker-compose.yml
version: '3' services: nginx: image: nginx port: - 80:80 links: - app volumns: - /nginx/conf.d:/etc/nginx/conf.d app: image: app expose: - 8080
2.配置nginx
mkdir -p /nginx/conf.d vim nginx.conf server{ listen 80; access_log off; location /{ proxy_pass http://app:80; } }
3.启动docker-copose
cd docker-compose目录下
docker-compose -d up
docker私有仓库
有时候公司服务器不能访问内部网络,或者不希望镜像放到公网,在局域网内搭建私有仓库管理自己的镜像
1.搭建
1.拉取私有仓库
docker pull registry
2.启动私有仓库
docker run -id --name=registry -p 5000:5000 registry
3.打开浏览器测试私有仓库 http://私有仓库服务器ip:5000/v2/_catalog,看到{"repositories":[]},表示私有仓库搭建成功
4.修改dameon.json
vim /etc/docker/dameon.json
添加docker信任仓库地址
{"insecure-registries":[私有仓库服务器ip:5000]}
5.重启daocker服务
systemctl docker restart
6.重启docker仓库
docker start registry
2.上传镜像
1.标记镜像为私有镜像
docker tag centos 私有仓库服务器ip:5000/centos
2.上传标记镜像
docker push 私有仓库服务器ip:5000/centos
3.拉取镜像
1.删除本地镜像,不要用IMG ID,因为tag的和本地的ID一样
docker rmi REPOSITORY:TAG
2.查看镜像
docker images
3.拉取镜像
docker pull 私有仓库服务器ip:5000/centos

浙公网安备 33010602011771号