1:安装docker :
apt install docker-ce -y2:启动,重启,关闭,查看状态:
# 1:启动 systemctl start docker # 2: 重启 systemctl restart docker # 3: 关闭 systemctl stop docker # 4: 查看状态 systemctl status docker3: 查看版本:
# 1:精简信息 docker version # 2:详细信息 docker info4:加速配置:实际就是更改国内源。
# 定制加速仓库 echo '{"registry-mirrors": ["https://kcmn5udq.mirror.aliyuncs.com"]}' > /etc/docker/daemon.json # 重启服务 systemctl restart docker1:搜索镜像:(需要联网)
docker search 镜像名 python@ubuntu:~$ docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 13818 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1887 [OK] richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 788 [OK] ....2: 获取镜像:
# 默认获取官方最新版本 docker pull nginx3:查看镜像:
docker images nginx python@ubuntu:~$ docker images nginx REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest f949e7d76d63 12 months ago 126MB4: 查看版本的提交信息:
docker history nginx镜像作者的提交信息
python@ubuntu:~$ docker history nginx IMAGE CREATED CREATED BY SIZE COMMENT f949e7d76d63 12 months ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B <missing> 12 months ago /bin/sh -c #(nop) STOPSIGNAL SIGTERM 0B <missing> 12 months ago /bin/sh -c #(nop) EXPOSE 80 0B <missing> 12 months ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx… 22B <missing> 12 months ago /bin/sh -c set -x && addgroup --system -… 56.8MB <missing> 12 months ago /bin/sh -c #(nop) ENV PKG_RELEASE=1~buster 0B <missing> 12 months ago /bin/sh -c #(nop) ENV NJS_VERSION=0.3.5 0B <missing> 12 months ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.17.4 0B <missing> 13 months ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B <missing> 13 months ago /bin/sh -c #(nop) CMD ["bash"] 0B <missing> 13 months ago /bin/sh -c #(nop) ADD file:1901172d265456090… 69.2MB5:给镜像贴标签: 发现:有两个相同的,他们的ID相同,说明是同一个镜像。
python@ubuntu:~$ docker tag nginx:latest mynginx:version1.0 python@ubuntu:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE mynginx version1.0 f949e7d76d63 12 months ago 126MB nginx latest f949e7d76d63 12 months ago 126MB mysql 5.7.22 0d16d0a97dd1 2 years ago 372MB delron/fastdfs latest 8487e86fc6ee 2 years ago 464MB delron/elasticsearch-ik 2.4.6-1.0 095b6487fb77 2 years ago 689MB6:删除镜像: 我们发现删除了标签,但是没有删除nginx这个。原因是引用计数不为0,当再次删除nginx时,就会完全删除。
python@ubuntu:~$ docker rmi mynginx:version1.0 Untagged: mynginx:version1.0 python@ubuntu:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest f949e7d76d63 12 months ago 126MB mysql 5.7.22 0d16d0a97dd1 2 years ago 372MB delron/fastdfs latest 8487e86fc6ee 2 years ago 464MB delron/elasticsearch-ik 2.4.6-1.0 095b6487fb77 2 years ago 689MB此外,如果删除时使用的是id,则所有的都会被删除。
docker rmi f949e7d76d637:将镜像打包:
python@ubuntu:~/Desktop$ docker save -o nginx.tar.gz nginx python@ubuntu:~/Desktop$ ls meimei_project nginx.tar.gz shopping-mall-project sql脚本 安装包文件8:将打包的镜像恢复:
python@ubuntu:~/Desktop$ docker load < nginx.tar.gz1:查看容器:
# 1:查看正在执行的 python@ubuntu:~/Desktop$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f90e380d626a delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours storage f951dc81977c delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours tracker python@ubuntu:~/Desktop$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f90e380d626a delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours storage f951dc81977c delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours tracker查看所有的: 包括不在运行的。
python@ubuntu:~/Desktop$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 56e2e5bd67b7 mysql:5.7.22 "docker-entrypoint.s…" 3 weeks ago Exited (0) 4 days ago mysql-slave b5a7b35611f8 delron/elasticsearch-ik:2.4.6-1.0 "/docker-entrypoint.…" 4 weeks ago Exited (143) 43 hours ago elasticsearch f90e380d626a delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours storage f951dc81977c delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours tracker python@ubuntu:~/Desktop$ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 56e2e5bd67b7 mysql:5.7.22 "docker-entrypoint.s…" 3 weeks ago Exited (0) 4 days ago mysql-slave b5a7b35611f8 delron/elasticsearch-ik:2.4.6-1.0 "/docker-entrypoint.…" 4 weeks ago Exited (143) 43 hours ago elasticsearch f90e380d626a delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours storage f951dc81977c delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours tracker2:镜像运行成容器并启动:(第一次执行的操作)
python@ubuntu:~/Desktop$ docker run -itd nginx 6c0bcf13212e3c46cdf9e32c0a1665e87017319fda83d340480429eadc9320ec3:关闭容器:
docker stop 容器id python@ubuntu:~/Desktop$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6c0bcf13212e nginx "nginx -g 'daemon of…" About a minute ago Up About a minute 80/tcp pensive_joliot f90e380d626a delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours storage f951dc81977c delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours tracker python@ubuntu:~/Desktop$ docker stop 6c0bcf13212e 6c0bcf13212e python@ubuntu:~/Desktop$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f90e380d626a delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours storage f951dc81977c delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours tracker python@ubuntu:~/Desktop$4: 启动(运行成功后):
docker start 容器id python@ubuntu:~/Desktop$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6c0bcf13212e nginx "nginx -g 'daemon of…" 4 minutes ago Exited (0) 2 minutes ago pensive_joliot 56e2e5bd67b7 mysql:5.7.22 "docker-entrypoint.s…" 3 weeks ago Exited (0) 4 days ago mysql-slave b5a7b35611f8 delron/elasticsearch-ik:2.4.6-1.0 "/docker-entrypoint.…" 4 weeks ago Exited (143) 43 hours ago elasticsearch f90e380d626a delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours storage f951dc81977c delron/fastdfs "/usr/bin/start1.sh …" 4 weeks ago Up 2 hours tracker python@ubuntu:~/Desktop$ docker start 6c0bcf13212e 6c0bcf13212e5: 删除容器:
docker rm nginx # 强制删除 docker rm -f nginx6: 进入容器内部:
python@ubuntu:~/Desktop$ docker exec -it 6c0bcf13212e /bin/bash root@6c0bcf13212e:/# -i:则让容器的标准输入保持打开。 -t:让docker分配一个伪终端,并绑定到容器的标准输入上 /bin/bash:执行一个命令7:将容器再次写入镜像:
docker commit -m '改动信息' -a "作者信息" [container_id] [new_image:tag]8:查看容器日志:
docker logs 6c0bcf13212e9: 查看容器的属性:
docker inspect 6c0bcf13212e1:数据卷: 数据卷就是将宿主机的某个目录,映射到容器中,作为数据存储的目录,我们就可以在宿主机对数据进行存储。
docker run -itd --name [容器名字] -v [宿主机文件]:[容器文件] [镜像名称]2: 简单示例
创建测试文件
echo "file1" > /tmp/file1.txt启动一个容器,挂载数据卷
docker run -itd --name test1 -v /tmp:/test1 nginx测试效果
~# docker exec -it a53c61c77 /bin/bash root@a53c61c77bde:/# cat /test1/file1.txt file1Docker 网络实现方式有两种:
端口映射 - 将容器内服务端口与宿主机端口关联在一起,通过"宿主机ip:宿主机port"达到访问容器服务效果 网络模式 - 借助于独立的docker网卡功能实现访问容器服务的效果
1:随机映射:
python@ubuntu:~/Desktop$ docker run -d -P nginx f094f075d4df20e09a27ca2aa33478c292681e5f638f85d41704e4d6ea13c8272:指定端口映射:
python@ubuntu:~$ docker run -d -p 192.168.203.153:777:80 --name nginx-3 nginx 66987d8aec1569ade156d5a9393b8daece6b3ae29e8a23574242ef868ea81044ubuntu 访问http://192.168.203.153:777/
1:桥接模式:Docker的默认模式,它会在docker容器启动时候,自动配置好自己的网络信息,同一宿主机的所有容器都在一个网络下,彼此间可以通信。类似于我们vmware虚拟机的nat模式。
2:host 模式:容器和宿主机公用一个网络。
docker run --network=host -itd --name nginx-host nginx3:连接网络和断开网络:
# 连接网络 docker network connect bridge-test nginx-new-bri # 断开网络 docker network disconnect bridge-test nginx-new-bri