docker学习

Docker


Docker官网:https://hub.docker.com/

查看docker镜像的版本:https://hub.docker.com

注:一下没有标明版本的,都是默认镜像的最新版本latest

Docker安装

 

brew安装

 

拉取镜像及创建容器

进入容器
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

 

posted @ 2021-01-26 20:58  qidiantianxia  阅读(128)  评论(0)    收藏  举报