day1
Docker安装
Ubuntu/Centos安装Docker
curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyun
|
//后面可能会进行修改
Kali/Debian安装Docker
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo 'deb https://mirrors.aliyun.com/docker-ce/linux/debian buster stable'> /etc/apt/sources.list.d/docker.list
apt update
apt remove docker docker-engine docker.io
apt install docker-ce
docker version
|
//后面可能会进行修改
开机自启
sudo systemctl enable docker sudo systemctl start docker
|
Docker基础命令
搜索镜像
docker search 关键字 eg:docker search php
|
下载镜像
docker pull 镜像名 eg: docker pull demo/php5
|
查看已经下载的镜像列表
Docker run运行docker镜像,创建新容器
docker run -d 镜像名 //创建容器 eg: docker run -d sql docker run --name 容器名 镜像名/镜像ID docker run --name sql -d mysql
|
docker run -d 镜像名 //运行docker镜像,创建新容器 -p 映射端口 8080:80 物理机端口:容器端口 把容器的80端口映射到虚拟机的8080端口 -d 指定镜像,使用-d时,容器会自动进入后台,如果下进入容器内部 --name 为容器指定一个名称 eg: --name hhh -e 设置环境变量 eg: -e MYSQL_ROOT_PASSWORD=root 设置mysql的root用户密码为root
docker exec -it 容器ID /bin/sh //alpine linux系统的sh启动方式 docker exec -it 容器ID /bin/bash //常见linux系统的sh启动方式
docker run -p 8080:80 --name lamps -e MYSQL_ROOT_PASSWORD=root -d lamp docker run -p 指定端口 --name 运行之后的镜像名 -e MYSQL_ROOT_PASSWORD=root -d 指定镜像名
|
查看当前容器
统计信息
启动容器
docker start 容器名/容器ID eg: docker start sql/abc
|
重启容器
docker restart 容器名/容器ID eg: docker restart sql/abc
|
终止容器 /关闭容器
docker stop 容器名/容器ID eg: docker stop sql/abc
|
停止所有正在运行的容器
docker stop $(docker ps -aq)
|
进入容器内部/连接容器
docker exec -it 容器名/容器ID /bin/bash eg: docker exec -it sql/abc /bin/bash //ubuntu系统 docker exec -it sql/abc /bin/sh //alpine系统
|
删除容器
前提: 得先关闭想要删除的容器
docker rm 容器名/容器ID eg: docker rm sql/ab1ccc
|
删除所有容器
前提: 得想关闭所有正在运行的容器
docker rm $(docker ps -aq)
|
删除镜像
docker rmi 镜像名/镜像ID(images id) eg: docker rmi sql/ababab11
|
删除所有镜像
docker rmi $(docker images -q)
|
容器相互复制文件
(1)复制容器的文件到虚拟机
docker cp 83db10b340c3:/etc/apache2/httpd.conf /home //虚拟机执行 docker cp 容器id:文件路径 虚拟机 路径
|
(2)复制物理机的文件到容器内
docker cp hss 69daf8de7c49:/var/www/localhost/htdocs/ //复制当前目录下的hss文件夹到容器的/var/www/localhost/htdocs/路径下 docker cp 文件名 容器id:复制到的路径 //前提,物理机必须进入文件的目录
|
端口映射
部署一个容器,并将 8080 端口映射到宿主机的 8888 端口上
docker run -d -p 8888:8080 --name 容器名 镜像名 eg: docker run -d -p 8888:8080 --name sql1 sql
docker run -d -p 8888:8080 镜像名 eg: docker run -d -p 8888:8080 sql
|
dockerfile部署镜像
docker build -t 自定义镜像名称 . eg: docker build -t sql .
|
docker commit
docker commit 从容器创建一个新的镜像
docker commit -a "提交镜像的作者" -m "提交时的说明文字" 容器ID 镜像名称:版本 docker commit -a "dockers" -m "big demo" ghhshhhh demo1:0.1 -a //必要 -m //可选
|
Dockerfile编写
待补充
Docker compose
待补充