Docker常用操作命令

Docker常用操作命令插图

什么是Docker?

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

 

为什么要使用Docker?

1、无论是安装应用、搭建环境,还是部署应用,都十分的方便灵活

2、节省资源开销。

3、灵活迁移你开发的应用程序

 

如何安装Docker?

 

1、配置docker阿里云yum源 (直接执行下面的命令即可)

cat >>/etc/yum.repos.d/docker.repo<<EOF
[docker-ce-edge]
name=Docker CE Edge - \$basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/\$basearch/edge
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF

2、yum方式安装docker

# yum安装
yum -y install docker-ce

### 查看docker版本
docker --version  

### 启动docker
systemctl enable docker
systemctl start docker

 

Docker拉取Ubuntu镜像

 

#拉取ubuntu官方镜像
docker pull ubuntu

#制作容器
docker run -it -d -p 10122:22 --name hadoop_master ubuntu /bin/bash -D

(注意,如果使用ubuntu的话,是没有自带ssh的,需要重新安装,然后制作成镜像后,然按下面的做成容器)
docker run -it -d -p 10222:22 --name hadoop_3  moxi/ubuntu_ssh  /usr/sbin/sshd -D
(使用上方 /usr/sbin/sshd,表示开机自动启动sshd脚本)

#将宿主机的hosts文件写入到容器中
docker run -d -h hadoop_master --name hadoop_master -p 10022:22  -p 50070:50070  $(cat /opt/software/hosts|awk -F ' ' '{if(NR>=0){print "--add-host "$2":"$1}}') moxi/ubuntu_hadoop

docker run -d -h hadoop_salve01 --name hadoop_salve01 -p 10122:22  $(cat /opt/software/hosts|awk -F ' ' '{if(NR>=0){print "--add-host "$2":"$1}}') moxi/ubuntu_hadoop

docker run -d -h hadoop_salve02 --name hadoop_salve02 -p 10222:22  $(cat /opt/software/hosts|awk -F ' ' '{if(NR>=0){print "--add-host "$2":"$1}}') moxi/ubuntu_hadoop


#进入容器
docker exec -it hadoop_master /bin/bash (注:/bin/bash指进入容器时,执行的命令)

 

制作CentOS容器

# 制作master
docker run  --privileged -it -d --name master -h master -p 10022:22 -p 50070:50070  $(cat /opt/software/hosts|awk -F ' ' '{if(NR>=0){print "--add-host "$2":"$1}}')  moxi/centos_hadoop  /usr/sbin/init

# 制作slaver101
 docker run  --privileged -it -d --name slave101 -h slave101 -p 10122:22  $(cat /opt/software/hosts|awk -F ' ' '{if(NR>=0){print "--add-host "$2":"$1}}')  moxi/centos_hadoop  /usr/sbin/init

# 制作slaver102
 docker run  --privileged -it -d --name slave102 -h slave102 -p 10222:22  $(cat /opt/software/hosts|awk -F ' ' '{if(NR>=0){print "--add-host "$2":"$1}}')  moxi/centos_hadoop  /usr/sbin/init

### 注意最后最佳 /usr/sbin/init 是为了能够启动systemctl在容器中

 

制作蘑菇博客容器

docker run --privileged -d -it -h mogu_blog_2 --name mogu_blog_2 -p 11122:22 -p 15672:15672 -p 5672:5672 -p 8600:8600 -p 9527:9527 -p 9528:9528 -p 6379:6379 -p 3306:3306 -p 80:80 -p 8080:8080 -v /etc/localtime:/etc/localtime:ro  moxi/mogu_blog_20191012 /usr/sbin/init

 

宿主机 /opt/software/hosts 文件

172.17.0.2  master
172.17.0.3  slave101
172.17.0.4  slave102
172.17.0.5  slave103
172.17.0.6  slave104
172.17.0.7  slave105

 

Ubuntu安装SSH

1、更新镜像源

# 更新apt源(注意:不更新有可能会出现安装错误)
apt-get update

# 安装SSH
apt-get install ssh -y

2、配置允许root用户远程访问

# 打开配置文件
vim /etc/ssh/sshd_config

 

将 PermitRootLogin后面的值,改成yes,如下图所示

Docker常用操作命令插图(2)

 

保存退出后,重启SSH服务

# ubuntu用户
service ssh restart

# centos用户
systemctl restart sshd.service

 

通过 XShell即可进行远程登录

Docker常用操作命令插图(4)

 

如果登录不了的话,那么我们需要开发宿主机对应的端口号,我的宿主机是centos,所以使用下面命令关闭防火墙

#关闭防火墙
systemctl stop firewalld.service

#开机禁用防火墙
systemctl disable firewalld.service

Docker将镜像提交到Dockerhub

1、什么是dockerhub

dockerhub就类似于github,是一个镜像托管网站

 

2、如何上传镜像

#首先将容器制作成相应的镜像
docker commit 0c27a8e124eb moxi/ubuntu_ssh

#通过docker login输入相应的账号密码(没有账号需要先注册 https://hub.docker.com/)
docker login

#登录成功后,通过push提交镜像
docker pull moxi/ubuntu_ssh

 

 

Docker的常用命令

#查看所有容器
docker ps -a   

#关闭容器
docker stop 容器名 

#启动容器
docker start 容器名

#删除容器(必须先关闭容器后才能删除)
docker rm 容器名

#查看所有镜像
docker images

#删除镜像
docker rmi 镜像ID 
站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
欧资源网 » Docker常用操作命令

发表评论

提供最优质的资源集合

立即查看 了解详情
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡