环境:centos7
安装步骤
1.CentOS官方的docker安装步骤(版本可能会有点低)升级到最新版
yum install -y docker
docker version
2.使用在线脚本安装(推荐)
curl -fsSL https://get.docker.com -o get -docker.sh
sudo sh get-docker.sh -- mirror Aliyun
启动
sudo systemctl enable docker --开机启动docker
systemctl start docker 启动docker
docker info 查看docker的信息
建立docker用户组
sudo groupadd docker #建立用户组
sudo usermod -aG docker $USER #将当前用户加入docker组
docker镜像加速
在/etc/docker/daemon.json写下如下内容
{
"registry-mirrors":[
"http://hub-mirror.c.163.com"
]
}
重启服务生效
sudo systemctl daemon-reload
sudo systemctl restart docker
docker info 查看是否使用了加速镜像
运行第一个docker容器
1.查看有无docker镜像
docker images
2.运行docker容器,如果没有镜像,这个命令会自己去下载镜像
docker run centos:7 sleep 1000
3.新打开一个linux终端,之前终端会睡眠在Status: Downloaded newer image for docker.io/centos:7,查看系统运行了哪些容器
docker ps
docker ps -a
4.查看docker容器的目录
docker run -t -i centos:7 ls /
5.运行一个新容器并进入命令行
docker run -t -i centos:7 bash
ls
echo "HELLO WORLD" >test.txt
cat test.txt
ls
exit
6.再创建一个新容器并操作
docker run -t -i centos:7 bash
ls
exit
这时会发现test.txt不见了,运行一个新容器会清空之前容器的内容
创建docker镜像
一、docker commit命令
1.docker ps -a 获取 CONTAINER ID
2.docker commit 807b6df15cd9 huang/centos:1.0 创建docker镜像
3.docker images 查看存在的镜像
4.docker run -ti huang/centos:1.0 bash
二、docker build 命令(打包容器成为镜像)
1.mkdir demo
2.cd demo
3.echo "hello world" > test1.txt
3.echo "hello boy" > test2.txt
4.vi Dockerfile
FROM centos:7
COPY test1.txt /demo/
COPY test2.txt /demo/
5.docker build -t huang/demo:1.0 .
6.docker images
7.docker run -ti huang/demo:1.0 bash
COPY为docker build的指令,其他docker build指令略
定制镜像,运行jar
准备一个war包,上传至服务器宿主机,并在同级目录下创建Dockerfile
touch Dockerfile
vi Dockerfile
执行构建
docker build -t session-web:latest
docker images 查看本地是否有镜像
docker run --name session-web -d -p 8888:8080 session-web:latest 运行容器
上传docker镜像到Docker Hub
略
常见命令
1.docker ps 查看运行的容器
docker ps -a 查看所有容器
1.1.docker inspect a6cf4fb96210 根据ID查看容器的信息
2.docker stop a6cf4fb96210 停止一个容器
3.docker start a6cf4fb96210 启动一个已经存在的容器
4.docker rm -f a6cf4fb96210 删除一个容器
5.docker run -d --name hello_world centos:7 sleep 10 -d后台启动 一个容器并命名
6. docker exec -it a6cf4fb96210 /bin/bash 进入容器
docker run -it 表示运行容器并进入交互界面,想退出容器可以按Ctrl+P+Q或者输入exit ,退出容器且不停止容器
docker run -d 表示后台启动容器
7.docker cp /root/1.txt a6cf4fb96210:/usr/local/ 从宿主机复制文件到容器,交换顺序则从容器复制文件到宿主机
8.docker search mysql 搜索想要的镜像去下载如:mysql
https://hub.docker.com/explore/
docker安装mysql
1.docker pull mysql
2.启动mysql
docker run -p 3306:3306 --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql
3.docker exec -it mysql /bin/bash
4.mysql -uroot -p123456
5.ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
数据卷
宿主机和容器之间共用一份目录和文件,即使容器被销毁,数据不会丢失
方法1: Dockerfile中指定VOLUME后的目录,如 VOLUME /var/lib/test
方法2:docker run 后加 -v,如
docker run -d -p 8080:8080 --name tomcat1 -v /root/tomcat/webapps:/usr/local/tomcat/webapps tomcat:7
:左边对应宿主机目录,右边对应容器目录
附:
docker stop $(docker ps -q) 停用全部运行中的容器
docker rm $(docker ps -aq) 删除全部容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq) 一条命令实现停用并删除容器
docker rmi 【镜像id】 删除镜像
docker启动jenkins的几个问题
docker run -p 8080:8080 -p 50000:50000 --name=jenkins -d -v /home/jenkins:/var/jenkins_home -u 0 jenkins
注意加上 -u 0
初始密码查看 cat /home/jenkins/secrets/initialAdminPassword