欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker 安装使用教程

程序员文章站 2022-03-04 14:30:27
...

一、docker安装

1、环境:CentOS7.4
uname -r 查看当前内核版本号,要求内核版本不低于3.10
yum update 更新yum包
----- 如果内核版本低于3.10,执行下面命令 ----
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -ivh http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
yum -y --enablerepo=elrepo-kernel install kernel-lt
vi /etc/grub.conf 编辑配置文件default=1修改为default=0
reboot 重启系统
2、添加docker的yum源命令行输入

cat >/etc/yum.repos.d/docker.repo <<-EOF

>[dockerrepo]
>name=Docker Repository
>baseurl=https://yum.dockerproject.org/repo/main/centos/7
>enabled=1
>gpgcheck=1
>gpgkey=https://yum.dockerproject.org/gpg
>EOF
3、安装Docker软件包

yum install docker-engine

4、启动docker

service docker start

5、测试运行下hello-world镜像

docker run hello-world

显示成功:
Hello from Docker!
This message shows that your installation appears to be working correctly.
6、设置docker用户组
groupadd docker  -- 新增docker用户组(可能已存在)
useradd pengjian  -- 新增用户 pengjian
usermod -aG docker pengjian  -- 将用户pengjian加入到docker组
su root  -- 切换到root账户
su pengjian -- 切换到pengjian账户
7、设置开机启动

chkconfig docker on

8、docker命令
docker --version  查看docker版本
docker info     查看docker详细信息
docker ps       列出容器
docker ps -a    显示所有容器,包括未运行的
docker stop <容器ID> 停止容器
docker rm <容器ID>  移除容器(先要停止容器才能移除容器)
docker rmi <镜像ID> 移除镜像(先要停止容器才能移除镜像)
docker start <容器ID/NAME> 启动容器
docker logs <容器ID/NAME> 查看容器启动日志
docker attach <容器ID/NAME> 进入启动的容器(多人同时进入会出现阻塞)
docker exec -it 775c7c9ee1e1 /bin/bash 进入容器

二、docker使用

1、搭建javaWeb运行环境
1)拉取centOS镜像(https://dashboard.daocloud.io
docker pull daocloud.io/library/centos:centos7.5.1804 在镜像仓库选择拉取
docker images 查看本地镜像
2)启动镜像

docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash

参数:docker run <相关参数> <镜像 ID> <初始命令>
- -i:表示以“交互模式”运行容器
- -t:表示容器启动后会进入其命令行
- -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
- /bin/bash 表示直接进入命令行界面,不做其他操作
如果我们的软件安装包都在宿主机的/root/software/目录下,就需要将其挂载到容器的/mnt/software/目录下

3)安装软件(jdk、tomcat),安装包在目录/mnt/software/
  • 安装jdk

    rpm -ivh /mnt/software/jdk-7u80-linux-x64.rpm
    默认安装到/usr/java/路径下

  • 安装tomcat

tar -zxf /mnt/software/apache-tomcat-7.0.81.tar.gz -C .
mv apache-tomcat-7.0.81/ /usr/java/tomcat/
  • 设置环境变量

vi ~/.bashrc

 export JAVA_HOME=/usr/java/jdk1.7.0_80
 export PATH=$PATH:$JAVA_HOME

source ~/.bashrc 让环境变量生效

  • 编写脚本,当容器启动时运行脚本启动tomcat服务
-- 创建脚本 --
vi /root/run.sh
-- 脚本run.sh内容 --
#!/bin/bash
source ~/.bashrc
sh /usr/java/tomcat/bin/catalina.sh run
  • 给脚本添加运行权限 chmod u+x /root/run.sh
4)退出容器,查看运行容器
exit 退出容器
docker ps -a 查看容器
5)创建javaweb镜像
docker commit <容器ID> <创建镜像名称>
docker commit 57c312bbaad1 pengjian/javaweb:0.1
docker images 查看本地镜像
6)启动JavaWeb容器

docker run -d -p 58080:8080 –name javaweb pengjian/javaweb:1.0 /root/run.sh

docker run -d -p 58081:8080 –name javaweb02 -v /usr/docker/javaweb/logs:/usr/java/tomcat/logs pengjian/javaweb:1.0 /root/run.sh

参数:
-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
--name:表示容器名称,用一个有意义的名称命名即可
-v 将宿主机的目录和容器目录建立映射关系(这样两个目录内文件一样)
7)访问tomcat

注:我使用的腾讯云服务器,需要配置安全组放开58080端口
http://宿主机ip:58080