镜像相关命令
1.查看镜像
docker images
2.镜像的搜索
docker search 镜像名称
3.拉取:docker pull 镜像名称:版本号(若不指定则会拉取最新版本) #eg: docker pull centos:7
4.删除全部镜像:docker rmi 'docker images -q' 删除指定镜像:docker rmi 镜像id
容器的基本操作:
1.查看容器: docker ps 查询所有 docker ps -a
2.启动容器: docker run -it --name=mycentos7 centos:7 /bin/bash
-i 表示运行容器
-t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name:为创建的容器命名
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件
映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t
两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
3.创建并启动守护式容器
1.创建并启动守护式容器
docker run -di --name=mycentos2 centos:7
2.登录进入容器命令:
docker exec -it mycentos2 /bin/bash
4.停止并启动容器
# 停止正在运行的容器:docker stop 容器名称或者ID
docker stop mycentos2
# 启动已运行过的容器:docker start 容器名称或者ID
docker start mycentos2
5.文件拷贝
# docker cp 需要拷贝的文件或目录 容器名称:容器目录
# 创建一个文件abc.txt
touch abc.txt
# 复制abc.txt到mycentos2的容器的 / 目录下
docker cp abc.txt mycentos2:/
# 进入mycentos2容器
docker exec -it mycentos2 /bin/bash
# 查看
ll
# docker cp 容器名称:容器目录 需要拷贝的文件或目录
#进入容器后创建文件cba.txt
touch cba.txt
# 退出容器
exit
# 在Linux宿主机器执行复制;将容器mycentos2的/cba.txt文件复制到 宿主机器的/root目录下
docker cp mycentos2:/cba.txt /root #eg:docker cp mycentos2:/cba.txt /docker/DockerToolbox
6.文件挂载
# 创建linux宿主机器要挂载的目录
mkdir /usr/local/test
# 创建并启动容器mycentos3,并挂载linux中的/usr/local/test目录到容器的/usr/local/test;也就是在
linux中的/usr/local/test中操作相当于对容器相应目录操作
docker run -di -v /usr/local/test:/usr/local/test --name=mycentos3 centos:7
# 在linux下创建文件
touch /usr/local/test/def.txt
# 进入容器
docker exec -it mycentos3 /bin/bash
7.查看容器的ip
docker inspect 容器名称
8.删除容器
docker rm 容器名称
docker部署mysql:
1.搜索mysql镜像 docker search mysql
2.拉取mysql镜像 docker pull centos/mysql-57-centos7
3.创建一个mysql的守护容器 docker run -di --name=mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7 MYSQL_ROOT_PASSWORD:远程连接密码
4.启动守护容器 docker exec -it mysql5.7 /bin/bash
5.连接mysql mysql -u root -p 初始为空
6.Navicat工具连接容器mysql
docker部署oracle:可参考以下三个,亲测可行,请结合起来看。
https://blog.csdn.net/zwx521515/article/details/77982884
https://blog.csdn.net/qq_38380025/article/details/80647620
https://blog.csdn.net/qq_20057315/article/details/90769728?utm_medium=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.wap_blog_relevant_pic&depth_1-utm_source=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.wap_blog_relevant_pic
oracle中新建用户时,需要给用户赋值权限,否则,不能进行数据库的创建等操作。下面是简单的oracle权限赋值:
创建用户:
create user username identified by password;
给用户授权:
grant connect, resource to username;
登陆用户:
conn username/password;
username是创建的用户名,password是创建的密码。
docker部署Tomcat:
1.拉取tomcat镜像 docker pull tomcat
# 创建tomcat容器;并挂载了webapps目录
docker run -di --name=mytomcat -p 9000:8080 -v
/usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat
# 如果出现 WARNING: IPv4 forwarding is disabled. Networking will not work.
#执行如下操作
# 1、编辑 sysctl.conf
vi /etc/sysctl.conf
# 2、在上述打开的文件中后面添加
net.ipv4.ip_forward=1
# 3、重启network
systemctl restart network
测试访问宿主机的端口号为9000的 tomcat。地址:http://宿主机ip:9000,也可以往/user/local/tomcat/webapps
下部署应用,然后再访问。
docker部署nginx:
1.拉取nginx镜像 docker pull nginx
2.创建一个守护容器 docker run -di --name=mynginx -p80:80 nginx
3.在浏览器上访问容器中nginx,http:192.168.99.101 启动后再宿主机上访问:http://宿主机IP/
注:如果被占用80端口,那么在指定映射的时候可以改变宿主机的端口映射,在访问时也需要带上端口号
docker部署redis:
1.拉取redis镜像,
2.创建并启动redis容器;默认端口是6379,如果需要外部访问则可以使用端口映射;
3.连接redis: 1.使用命令行客户端 2.使用图形界面工具
# 创建容器
docker run -di --name=myredis -p 6379:6379 redis
# 进入容器
docker exec -it myredis /bin/bash
进入bin目录 cd /usr/local/bin/ 执行redis客户端 ./redis.cli
其他参考:
配置阿里云镜像 可参考
https://blog.csdn.net/echo_Ae/article/details/103563449
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
进入要打包的项目目录 然后执行 mvn clean package docker:build 将项目打成镜像 然后再访问。
使用Dockerfile创建镜像:
**目标**:使用Dockerfile创建一个自定义jdk1.8的镜像
**分析**:
假设在centos7作为基础镜像上;添加jdk1.8并构建一个包含jdk1.8的centos7新镜像。
-- Dockerfile可以实现;Dockerfile是由一系列命令和参数构成的文本文件,在文件中可以指定各个组件资源和运行命令等。
实现步骤:
1. 拉取centos7镜像;
2. 上传jdk1.8;
3. 编写Dockerfile文件;
4. 构建镜像;
5. 测试(基于新镜像创建并运行容器,运行java -version)
Dockerfile可以基于镜像制作镜像;`docker build -t='jdk1.8' . `