Docker基本操作

Snipaste_20211020_142052.jpg

Docker,这东西对于像我这样的linux菜鸟简直是太方便了,他相当于把每个应用装在自己的独立的linux里,像一个个集装箱一样,节省了大量装环境的时间,妈妈再也不用担心我的开发环境出错了。

因为docker平时用的也不算多,这里还是记录一下我常用的一些docker基本操作了。

安装(centos7)

centos7配置yum repo 配成阿里元镜像

          
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
[docker-ce-stable] name=Docker CE Stable - Sources baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

          
  • 1
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
          
  • 1
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

配置docker镜像 cd /etc/docker 找到daemon.json文件,如果没有就新建一个 打开daemon.json,内容配置如下:

          
  • 1
  • 2
  • 3
{ "registry-mirrors":["https://almtd3fa.mirror.aliyuncs.com"] }

yum 安装

          
  • 1
sudo yum install docker-ce

启动

          
  • 1
  • 2
sudo systemctl start docker.service sudo systemctl enable docker

常用命令

镜像操作

查找镜像 docker search

下载镜像 docker pull

查看所有镜像 docker images

删除某镜像 docker rmi 镜像id

容器操作

运行容器
docker run -t -i 镜像名 /bin/bash

  • -i: 交互式操作
  • -t: 终端
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash

关闭容器
docker stop <容器 ID>或<容器名>

启动已停止运行的容器
docker start <容器 ID>或<容器名>

重启容器
docker restart <容器 ID>或<容器名>

查看所有容器
docker ps -a

移除容器(必须停止状态)
docker rm <容器 ID>或<容器名>

移除所有容器
docker rm -f $(docker ps -a -q)

进容器
docker exec -it <容器 ID 或容器名> bash

==容器与主机之间的数据拷贝==(这个我以前用的时候尽然不知道)
docker cp

  • 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下
          
  • 1
docker cp /www/runoob 96f7f14e99ab:/www/
  • 将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
          
  • 1
docker cp /www/runoob 96f7f14e99ab:/www
  • 将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
          
  • 1
docker cp 96f7f14e99ab:/www /tmp/

查看挂载目录
docker inspect <容器 ID 或容器名>

导出容器

          
  • 1
docker export 1e560fca3906 > ubuntu.tar

导入容器

  • 本地(将docker下的ubuntu.tar导入取名test/test/ubuntu:v1)
          
  • 1
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
  • 网络
          
  • 1
docker import http://example.com/exampleimage.tgz example/imagerepo

常用命令(仅做记录,务复制)

mysql

          
  • 1
docker run -p 3306:3306 --name dk_mysql -v /root/dockerData/dk_mysql/conf:/etc/mysql/conf.d -v /root/dockerData/dk_mysql/logs:/logs -v /root/dockerData/dk_mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

nginx

          
  • 1
docker run --name dk_nginx -p 80:80 -v /root/docker_data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /root/docker_data/nginx/log:/var/log/nginx -v /root/docker_data/nginx/conf.d:/etc/nginx/conf.d -v /root/static:/static -d nginx

mongo

          
  • 1
$ docker run -itd --name mongo -p 27017:27017 mongo --auth
          
  • 1
  • 2
  • 3
  • 4
  • 5
$ docker exec -it mongo mongo admin # 创建一个名为 admin,密码为 123456 的用户。 > db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]}); # 尝试使用上面创建的用户信息进行连接。 > db.auth('admin', '123456')

tips:

用的时候其实网络互通问题没搞清楚,后来就直接用和主机互通的模式了#共享主机网 --net=host

四类网络模式

栗子:

          
  • 1
docker run -itd -v /root/docker_data/python/code:/code -v /root/static:/static --net=host -w /code --name mypython python:3.6.6

关于有更多的知识就等到以后需要用的时候在学习了。

---end---
(完)
VSCode代码自动补全(html标签、style样式、css属性及值)
使用VSCode碰到.vue文件无法自动提示或补全style
Chrome浏览器google翻译无法使用
google翻译无法使用解决方案
git cherry-pick 的使用
git cherry-pick 的使用,Sourcetree中使用cherry-pick
设置swap,优化vps内存不足
阿里云,vultr等vps内存不足解决方案
七宗罪
色欲,暴食,贪婪,懒惰,愤怒,嫉妒,傲慢,你有几宗罪?
GitHub Copilot
大大提升你写代码的效率
等待你的评论